関数型プログラミングを理解するための方法

関数型プログラミングを理解する方法はいろいろありますよね。ざっと検索をしてみているのですが、なかなか良い資料というのは見つかりませんが…

気になった資料をざっくりですが一覧としておきました。

こうしてみると、PHP、JavaScript、Ruby、Javaといったよく使われているプログラミング言語にも関数型プログラミングの機能が取り込まれるようになってきていて、身近なものになってきているのは確かですね。だから、使えそうなところから使っていくというのが一番良い気がします。クロージャあたりは、みんな普通に使っていますしね。

本格的に勉強したいと思うなら、純粋関数型プログラミング言語が良いでしょうから、Haskellなのかな、とは思います。圏論から理解するというアプローチも面白いと思う人もいるかもしれませんが、数学が得意でない限り、おすすめしません。たぶん、プログラミング言語の方を使って、こういうのは、どういう場面で使われるものなのか、というのを具体的に知ってから、抽象的な話を理解するようにした方が、わかりやすいはずだからです。クロージャの利点を知らないまま、頭ごなしにクロージャ便利、とか、クロージャは圏論では…とか言われてもやっぱり追いつけないと思う訳です。

それで、状態を持った方が簡単に実装できそうなプログラムに対して、関数型プログラミング言語ではどうやって解決していくのかを理解するには、スタックやキューといったものをどう実装するのか、入出力を伴うプログラムはどうやって記述するのか、といったあたりをじっくりと考えてみるのが良いのでしょう。

最近、基礎文法からプログラミング言語を理解するというのが億劫になっていて、概論から理解を深めようとして、逆に時間がかかるみたいな感じもあったりします。細かい文法事項は、知ると「なるほど」とは思うのですが、実際に利用する場面にくるころには忘れてしまう、ということを繰り返しているので、そういうのはそういうときに調べればいいや、って最近はなっています。

まぁ、日々精進ということで。

同じカテゴリの記事: General