
128
5 章 関数を組み立てる関数
本書は関数型プログラミングの美徳を熱く説くものではありません。世の中には
様々な関数型のテクニックが存在し、それぞれがソフトウェア開発における複雑性を
飼いならすための手段となります。しかし同時に、個々の実装においては、よりよい
方法があることに気づくこともあります(図
5-1
参照)。
図 5-1 進化したプログラマーは使うべき道具を理解している
†
普段からあなた自身の個人的な興味とニーズを深く追っておくことで、アプリケー
ションを構築する際にそのテクニックを使うことが適切であるかどうかを判断できる
よう準備しておくことがプログラマーとして賢明であると言えます。本書は関数型プ
ログラミングの本ですが、同時に、何にもまして、問題とその解決策を理解する力と
そこで使える引き出しを持っているということが、その場その場でとるべき最善のソ
リューションにつながるものであると信じています。最善の選択というテーマについ
ては
7
章で議論しますが、ここではまず美味しいカレーの話をさせてください
††
。
5.3
カリー化
あなたはすでに、カリー化(
currying
)された関数の例を目にしています(
invoker
関数)。カリー化された関数は、論理的な引数が
1
つ渡されるたびに新しい関数を返
†
訳注 「低レイヤーと共に生きる」の原文は「
Lives "Close to the Metal"
」。
"Close to the Metal"
は
AMD
(
ATI
系)
GPU
の
GPGPU
使用をターゲットにした低レイヤー ...