関数型プログラミングの学習日記この広告は、90日以上更新していないブログに表示しています。「プログラミングElixir」という本を買いました。Elixirを勉強して、Webアプリを作ってみたいです。プログラミングElixirは、以下のような構成になっていました。トーマス)クールなものを伝道するのが好きなプログラマ。Programmer(『達人プログラマー』)の共著者で、アジャイルソフトウェア開発宣言の著者の一人でもある。Rails(『RailsによるアジャイルWebアプリケーション開発』)はRailsが一世を風靡する最初の一押しとなった。こういち)プログラミング言語Rubyを開発するプログラマ。SMTS、一般財団法人Rubyアソシエーション理事。コンピューテーション』(オライリー・ジャパン、2014)。好きなElixirの機能はマクロ。テクノロジーアワード2013ルビー賞受賞。他の訳書に『ルビィのぼうけん』(翔泳社、2016)。好きなElixirの機能はパイプ演算子。twitter.comtwitter.comtwitter.com出版社情報www.ohmsha.co.jpshop.ohmsha.co.jp書評RubyやRailsの大御所が書いた本なので、内容は確かなものになっているはずだと思います。第1部の基礎文法解説を理解できればいいかな?本書を買うきっかけは、立ち読みで冒頭部分(第1章)にいいことが書いてあったから。赤いカプセルをとれ→これは、映画「マトリックス」有名なシーンからの引用ですね?青いカプセル:このまま仮想現実で生きる赤いカプセル:現実の世界で目覚めるyoutu.beなかなか粋なタイトルの付け方だと思いました。プログラミングはデータを変換するものだオブジェクトを使ってコードを書くとき、考えているのは状態のことだ。たくさんの時間が、オブジェクトのメソッドを呼び出し、またそれを別のオブジェクトに渡すことに費やされる。この呼び出しに基づいて、オブジェクトは自分自身の状態と、ひょっとしたら他のオブジェクトの状態を更新する。この世界では、クラスが王様だ。クラスは各インスタンスができることを定義し、そのインスタンスが抱えるデータの状態を暗黙的にコントロールする。目的は、データの隠蔽だ。現実の世界では、抽象的な階層構造をモデル化したいわけではない(なぜなら、実際には、真の階層構造なんてそう多くはないからだ)。私たちは仕事を済ませてしまいたいのであって、状態を維持したいわけではない。今から、コンピュータの殻のファイルを、文章の入った形に変換する。そのあとすぐに、私はこれらのファイルを読める形に変換する。どこかのウェブサーバは、その本をダウンロードしたいというリクエストを、中身にその内容が入ったHTTPレスポンスに変換するだろう。データを隠蔽したいのではない。出力」という流れが処理の基本形。変換について考えたいと。(p.2)パイプラインで変換を組み合わせるUnixユーザは、小さく、焦点を合わせた、どのようにでも組み合わせられるコマンドラインツール、という哲学に慣れ親しんでいる。それぞれのツールは入力をとり、それを変換し、次のツール(もしくは人間)が利用できる形式で結果を出力する。この哲学は信じられないくらい柔軟で、そのため素晴らしい再利用性がある。Unixユーティリティは、その作者が思いもよらなかった方法で組み合わせられる。して一つひとつが、他のツールの可能性を何倍にもする。いったコマンドラインツールは、高い信頼性を持つ。それぞれの小さなプログラムは、一つのことをきちんとするので、テストも簡単になる。コマンドパイプラインは並列に実行できる。OSの先駆的な開発者たちの経験に基づいている。パイプの発明者でありUNIX創始者の一人でもあるマキルロイは、この哲学を以下のように要約した。これがUNIXの哲学である。一つのことを行い、またそれをうまくやるプログラムを書け。協調して動くプログラムを書け。標準入出力(テキスト・ストリーム)を扱うプログラムを書け。標準入出力は普遍的インターフェースなのだ。ダグラス・マキルロイ、UNIXの四半世紀この哲学はしばしば、「一つのことを、うまくやれ」とさらに厳格に要約される。パイプ(パイプライン)の発明者であるダグラス・マルキロイ氏は、1つの機能を作る機能を組み合わせるという考え方をUNIXに適用したんですね。これは、関数型プログラミングにも当てはまる考え方だと思います。見る(p.3)関数はデータ変換器Elixirでの問題の解き方は、Unixシェルと同様だ。コマンドラインユーティリティの代わりに、関数がある。驚くほど簡単に、関数同士をつなげることができる。関数をより小さく、より焦点を合わせた形にすればするほど、つなげる際の柔軟性は高まる。ここまで読んで、閃いちゃいましたね!「関数型プログラミングって、難しく考える必要はなかったんだ!Unixのシェルと原理は同じじゃん!うひょ~、やったろやったろ、関数型!」と。(笑)わずか3ページ立ち読みしただけで、「これは買い!」と決定wPleromaのコードリーディングまあ本当は、Elixirの本を手にした理由は、Pleromaに興味を持ったからです。www.itmedia.co.jphttps://pleroma.social/最近話題になってたSNS「マストドン」を高速化したPleromaは、「Elixir」というプログラミング言語で作られている、と知りました。Pleromaのコードを読むには、Elixirの知識が必要になるので、ちょっと勉強してみようと。関数型プログラミングにも興味を持っていたので、Elixirはもってこいでした!Pleromaのコードを読みたい関数型プログラミングにも興味があるElixirの解説本でいいことが書いてあったこんな方には「プログラミングElixir」はお勧めです!Elixirを勉強した後は、Erlangもかじってみたいと思います。目次Tweet広告を非表示にする関連記事2018-09-07関数型プログラミングの肝=副作用がないことLisp勉強のメモ。「オブジェクト指向でなぜつくるのか」という本に、関数型言語...2017-12-22Elixirの調査Webアプリの作成でサーバーサイドに関数型言語を使いたい。»プロフィールid:hamamuratakuo関数型プログラミングを活用できるようになりたいです。Documentation参加グループHaskellLispカウンターはてなブログをはじめよう!hamamuratakuoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。