8.6 部分適用された関数
Rubyのように関数呼び出しの括弧が不要でありながら、関数をオブジェクトとして扱うのはどうするんだろう、と疑問におもっていたのだけど、アンダースコアをつかった部分適用が利用できるみたい。
おっ、という驚きはあったけど、よく考えるとまったく自然なことだということに気がついた。xとyとzというパラメータをとる関数について考えると、xを与えるとxの値が定まりyとzをパラメータにとる関数が生成されると考えられる。うーん、きれい。
まとめ
ScalaはRubyよりずっと関数型っぽいなー、という気がする。関数型プログラミングのこともよくわかっていないけど、関数の扱いがより自然でいままであった「数学の世界の関数」と「プログラミングの世界の関数」との間にあったギャップが埋まってきている気がする。
あと、クロージャーの説明がいままでに読んだものよりずっとわかりやすかった。もちろん、前提知識の有無とかも関わっているとおもうけど。