関数型プログラミングを学ぶ意義
いろんな案件に参画して気付いたことはたくさんあるが、その一つに「この物件の設計者は State, Stateless の考え方が分かっていないんじゃないかな?」ということがある。
また設計者が分かっていてもその後、修正を掛ける人たちが分かっていないと結果として「訳の分からない」コードベースが出来上がってしまうのだろう、と言うことだ。
そういう事が分かっていないと「オブジェクトがある場所では関数的、別の所ではクラス的に作られていて、その使い分けが行き当たりばったりに見える」ようなことになってしまう。
そして何かを修正、追加したときの影響範囲が分かりにくくなり、ある機能を追加するために修正すべき箇所が不必要に増える結果になる。
State を変える、変えないと言ったことを理解するのに最適な学び舎が「関数型プログラミング」を学ぶことなのである。
しっかり理解するつもりで Study したことをメモしておこうと思う。
Haskell を学ぶ意義
人材募集などで要 Haskell プログラミングスキルという文言を見たことのある人は少ないと思う。だから Haskell を学びたいと思う人も多くはないかも知れない。
純粋な Functional Programming 言語
Haskell プログラミングはあまり実用的なものと見なされていないのかも知れない。それでも学ぶ意義があると思ったのはそれが純粋な Functional Programming Language だからだ。
今や Swift や Kotlin は言うに及ばず、JavaScript まで Functional Programming ができると謳っている。でも本当に Functional Programming しかできない言語で学んだ方が本当の Functional Programming はわかりやすいと思えたのだ。そうでない言語で First Class だ、Higher Order だと言われても今ひとつピンとこない。
思えば最初に λ 関数という言葉を知ったのも Java だったがあまりよく理解できなかった。
そこでしばらく Get Programming with Haskell, Will Kurt, 2018, Manning Publishing Co.で Functional Programming とは何ぞやを学ぶことにした。
Haskell Playground => GHCi
Haskell の Playground とも言うべきものが GHCi である。このブログの中にある Haskell 実行環境構築関連のものを読めば、GHCi はインストールできる。
パスが通っていれば mac のターミナルや windows のコマンドプロンプトで ghci と入力して enter キーを押せば実行できる。
次回は Windows 10 で Haskell 実行環境構築して、GHCi の各種コマンドについてまとめておく。