魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

FUNP - 関数型プログラミング

また、少しご無沙汰してしまった。

そんなぼくが投稿する気になったのは、渡辺真さんからのコメントをいただいたからだ。実にありがたい。渡辺さんのように一つの言語(FreeBasic)に拘る姿勢には敬意を持ちます。

ぼくの場合は、気が多すぎるのと、自分にとっての理想の言語探しの最中に迷子になってしまっていたようなのだ。そして、迷子のまま歳を取ってしまったという感じ。そんなぼくが漸くにして、迷いから目覚めたように思うのだ。

それがなにかといえば、FUNP(ファンプ)なんだ。OOP とはよく言われるが、FUNP とは言われないようだけど、これ「関数型プログラミング」あるいは「関数型プログラミング言語」のこと。どちらかは文脈で判断する。

FUNP といっても色々あるが、まぁ、とりあえず Haskell かな。1~2年前に Haskell は学んだんだ。もちろん独学。そのとき、理解できたと思った。しかし、ぼくが想定するアプリケーションは入出力が多い。Haskell は不向きだと思った。しかし、それは理解不足に過ぎなかった。

また、Python などに馴染みの深いぼくは、Haskell の「型」への拘りが面倒で不自由なものに感じたんだ。カタカタカタカタとうるせぇよぉってな具合だ。結局、第1次の学習時点では、自分の身の丈に合った言語ではないと判断した。

その後、もっと自由な FUNP を求めて、LispScala を学んだ。そのことで漸く Haskell の価値に気付いたという次第。長い道のりであった。

そしていま、第2次 Haskell 学習がスタートした。もうなんとなく忘れかけていたので、復習からだ。Haskell の第2次が一段落したら、Elm(ウェブ世界の Haskell)と Agda(アグダ)を調べてみようと思っている。いずれにせよ FUNP なのだ。

それと、Haskell が簡潔な言語だということには誰もが賛同してくれると思うが、実は「簡単な言語」でもあるのではないかと近頃では思うようになった。どの書籍も細かなことと過剰な例題が、難しくしているだけなのではないかということ。

もっと大筋と利用する場合の全体像を明瞭に示せるのではないかと思い始めたのだ。勘違いである可能性もあるかな(笑)。それで、自分の学習が終わったら、つぎはそれ(簡単!FUNPってこと)に挑戦しようかと思いつつあるところなのだ。

で、簡単!FUNP のターゲットは、そりゃ、Haskell でしょってことになるけど、まずは Pythonを考えている。これは、Python を完全に FUNP として使ったらどうかというもの。ちょっと調べた感じでは、先行き暗いね(笑)。

というわけで、渡辺さんには、FreeBasic の情報をいただいてうれしいぼくなのだけど、いまは FUNP に夢中ってわけ。簡単!FUNP の成果はいつか何処かで発表したいと思っているけど、いまのところ先は見えていない。

※ こういう技術情報でも何でもないことを書いて、誰がうれしいのかってご批判もあろうけど、自分のために書いているってことで、たまたま見た方はご容赦ください。