「まえがき」から引用する。
教科書にはどれも著者のこだわりがあるもので,本書とて例外ではない. 現在では,Haskell に関する書籍,チュートリアル,記事,ブログはあまたある. しかし,関数プログラミングが近年まれに見る最高の技法である理由, すなわち,関数プログラムを数学的に考察できるという点を強調するものはほとんどない.(中略) 30 年も経った今でも,筆者にとって, 単純で明白だけど問題を解くには効率の悪いプログラムを書いておいて, いくつかの等式で表されている法則を適用して,10 倍も速くなる別のプログラムを手にする(このようなプログラム変換を運算という) というのはおおいなる喜びである. それが幸運によるものだったとしてもである.
私には高度であり、なかなか読み進められなかった。
第5章は「単純な数独ソルバー」である。本書の数独ソルバーでは 9x9 の盤面を行列として扱っている。なお、 本書では盤に存在する 3x3 のブロックを「箱」という用語で呼んでいる。さて、途中の p.98 では、 次のように記述されている。
気がついて欲しいのだが, ここまで行列について考えるときにインデックスを使わず, 行や列や箱を行列のインデックス計算で識別する代わりに,行列そのものを完全に独立した存在として扱う関数の定義に挑戦してきた. このスタイルを評して全粒粉プログラミング(wholemeal programming)とはうまい呼び方である. 全粒粉プログラミングは,インデックス炎という病気を予防し,法則を利用したプログラムの構成を促進してくれる.
全粒粉プログラミングは、おいしそうだ。なお、インデックス炎と訳されているのは、原語では “indexitis” だろうか。 https://www.seas.upenn.edu/~cis1940/fall16/lectures/01-intro.html では、 “wholemeal programming” の項で、 添字を使っている Java のコードが 「Richard Bird が呼んでいる “indexitis” に悩まされている」としている。 “indexitis” は添字を意味する index に、 関節炎を意味する Arthritis の語尾をつけたものだろう。
書名 | Haskell による関数プログラミングの思考法 |
著者 | Richard Bird |
訳者 | 山下伸夫 |
発行日 | 2017 年 2 月 28 日 初版第1刷 |
発行元 | ドワンゴ |
定価 | 2800 円(税別) |
サイズ | |
ISBN | 978-4-04-893053-6 |
その他 | 越谷市立図書館で借りて読む |
まりんきょ学問所 > 関数型言語 > Haskell > Richard Bird:Haskell による関数プログラミングの思考法