関数プログラミングの素晴しさ

最近、関数プログラミングの素晴しさがわかってきたように思います。
Haskellは、コンパイルさえ通ってしまえば、自分の思った通りに動いてくれます。Rubyよりも。関数プログラミングを推奨している人はよく言っていることなんですが、最初は僕も「ホントかよ〜」って疑ってかかってました。ようやくこれが体感できるようになってきたような気がします。サトリってやつでしょうか?(←まだ早いって!!)
ただRubyでプログラム書いているようなお気楽感はあんまり感じませんし(Haskellはストイックです)、さっと書くだけだったらRubyで書く方が10倍くらい早く書けるのですけどね。何ていうかな、Haskellでプログラム書いてるとパズル解いてるような楽しさがあります。まとめるとこんな感じ。

  • 「オレってばスゲー」 ← Ruby
  • 「パズル解けたー」← Haskell

参考:

  • How To Become A Hacker: JapaneseLISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験 は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあまり使わなくても。 」うーむ。名言です。
  • 横着プログラミング 第10回: scmail: Scheme によるメールフィルタ 「僕はLispを長い間、敬遠してきた。あんな括弧の多い言語、IQの高い人間じゃないと理解できないに違いない、そもそも実用性がないんじゃないか、と思っていた。が、やり始めてみると、すぐに病みつきになった。リスト構造の単純さ、lambda式の考え方、そして、リストとlambda式の組み合わせによる表現力。限りなく高い自由度。なんでこんなにすごいんだ?」高林さんがSchemeを学んだときのメモ。