Richard Bird:Haskell による関数プログラミングの思考法

作成日 : 2020-10-13
最終更新日 :

概要

「まえがき」から引用する。

教科書にはどれも著者のこだわりがあるもので,本書とて例外ではない. 現在では,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 円(税別)
サイズ
ISBN978-4-04-893053-6
その他越谷市立図書館で借りて読む

まりんきょ学問所関数型言語Haskell > Richard Bird:Haskell による関数プログラミングの思考法


MARUYAMA Satosi