ぱろっと・すたじお

技術メモなどをまったりと / my site : http://parrot-studio.com/

RubyとHaskellの蜜月な関係

先日書いた記事が、なぜかちょっと書いただけの「Haskell」って単語でHITしまくりなので、
もうちょっとまともに書いてみます
(よく考えてみたら、はてなでHaskellネタを書いてなかった・・・)


デブサミ2009でまつもと氏の講演を聞くまで、
関数型プログラミング」について私は、
「サブルーチン的な概念の進化版」としか思ってなかったのです


しかし、講演の中で「次のパラダイムは関数型」と言われ、
慌てて泥縄的に情報を集めまくった跡が、当時のはてブに残ってます


でも、いくらWebの解説記事を読んでみても、
いまいち「関数型プログラミング」についてわからず、
途方にくれていたのですが・・・


ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門


・・・この本を読んで目から鱗状態でした( ゚Д゚)y \_ ポロッ


まさに「普通のプログラマが躓きそうな箇所を考慮して」書かれた本であり、
Haskellを使えるようになることではなく、概念を理解して応用するため」と、
はっきり明記してあるあたりがすばらしい


最終的にWebアプリである「Wiki」を作成するところまで書いてあり、
かなり実用的な解説が満載の本です
現状、関数型についてこれ以上にわかりやすい解説本はそうないのでは


(ただし、この本の内容だけで実際にWebアプリは作れないのですが、
 前述の「目的」からすれば当然の割り切りです)


そして重要なのは、この本で「関数型」を理解することで、
今のRubyに追加されている機能の流れがよくわかることなのです


明らかに今のRubyは関数型を意識しており、
同時にそのように書くことで簡潔なコードになり、
しかもパフォーマンスもUPします


そもそも、Rubyという言語自体、
「言語オタク」であるまつもと氏の「美的センス」で構成されており、
その意図に従うことで、簡潔かつ高速に書けるようになってます


この本と「Ruby逆引き」を買うまで、
Enumerable#map なんて使ったこともなかったのですが、
今はこのメソッド無しではコードが書けない体に・・・(*ノ∀ノ)


ということで、わずかでも「関数型」に興味があるなら、
上記の本をおすすめします
Rubyを扱う技術者にとって、価格以上の価値があります


それにしても、「Rubyソースコード完全解説 for Ruby1.9」とか出ないのかな・・・
このソースコード解説も相当参考になったのですが・・・