RubyとHaskellの蜜月な関係
先日書いた記事が、なぜかちょっと書いただけの「Haskell」って単語でHITしまくりなので、
もうちょっとまともに書いてみます
(よく考えてみたら、はてなでHaskellネタを書いてなかった・・・)
デブサミ2009でまつもと氏の講演を聞くまで、
「関数型プログラミング」について私は、
「サブルーチン的な概念の進化版」としか思ってなかったのです
しかし、講演の中で「次のパラダイムは関数型」と言われ、
慌てて泥縄的に情報を集めまくった跡が、当時のはてブに残ってます
でも、いくらWebの解説記事を読んでみても、
いまいち「関数型プログラミング」についてわからず、
途方にくれていたのですが・・・

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/06/01
- メディア: 単行本
- 購入: 25人 クリック: 314回
- この商品を含むブログ (330件) を見る
・・・この本を読んで目から鱗状態でした( ゚Д゚)y \_ ポロッ
まさに「普通のプログラマが躓きそうな箇所を考慮して」書かれた本であり、
「Haskellを使えるようになることではなく、概念を理解して応用するため」と、
はっきり明記してあるあたりがすばらしい
最終的にWebアプリである「Wiki」を作成するところまで書いてあり、
かなり実用的な解説が満載の本です
現状、関数型についてこれ以上にわかりやすい解説本はそうないのでは
(ただし、この本の内容だけで実際にWebアプリは作れないのですが、
前述の「目的」からすれば当然の割り切りです)
そして重要なのは、この本で「関数型」を理解することで、
今のRubyに追加されている機能の流れがよくわかることなのです
明らかに今のRubyは関数型を意識しており、
同時にそのように書くことで簡潔なコードになり、
しかもパフォーマンスもUPします
そもそも、Rubyという言語自体、
「言語オタク」であるまつもと氏の「美的センス」で構成されており、
その意図に従うことで、簡潔かつ高速に書けるようになってます
この本と「Ruby逆引き」を買うまで、
Enumerable#map なんて使ったこともなかったのですが、
今はこのメソッド無しではコードが書けない体に・・・(*ノ∀ノ)
ということで、わずかでも「関数型」に興味があるなら、
上記の本をおすすめします
Rubyを扱う技術者にとって、価格以上の価値があります
それにしても、「Rubyソースコード完全解説 for Ruby1.9」とか出ないのかな・・・
このソースコード解説も相当参考になったのですが・・・