|
11 人中、10人の方が、「このレビューが参考になった」と投票しています。
Amazon.co.jpで購入済み(詳細)
レビュー対象商品: The Little Schemer (ペーパーバック)
この本は師匠と弟子の対話形式で、時折冗談を飛ばすなど親しみ易く書かれています。プログラミングの予備知識の無い人でも全体の七割は読めると思います。その部分はSchemeの基本的な関数であるcons, car, cdrを中心に再帰関数の書き方を一行一行丁寧に解説しています。残りの三割程は数学基礎論をベースにしたpedagogicalな話になっており、知らない人には難解に感じられると思います。六章と八章では簡単な電卓関数valueを作りますが、これは最も簡単な処理系の作成になっています。最後に数を()の個数で表わしていますが、これは数学基礎論(ペアノの理論)で学習する整数の構成に対応しています。Dedekindの「数について(Essays on the theory of numbers)」の後半部分等が参考になります。また、Reasoned Schemerの七章と八章に出てくるバイナリー計算機の話と合わせて数値計算の基礎理論を見ることが出来るようになっています。 十章では再帰処理が出来る小さなScheme処理系(Little Schemer)を作成します。これが表紙の絵で象徴的に描かれています。Little Schemerではdefineが使えないので無名の高階関数としてYコンビネータ(表紙の象が象徴しているLambda関数)を導入し、このYコンビネータが再帰される本体の関数(象が持っている本)を使って再帰関数を実現する必要があります。これが九章でやっている話で、Smullyanの"To Mock a Mockingbird"に書かれているSKIコンビネータ理論の森の鳥達の話に対応します。そのようなSKIだけだとさすがにプログラミングが大変すぎるので妥協点として小さなScheme処理系を提示しています。それでもちょっとした再帰関数を作るのに難解なYコンビネータが必要になります。defineが使えるReasoned Schemerの処理系と比較することで、処理系の充実とプログラミングの労力の間のバランスを体験学習するようになっています。defineがあれば再帰処理にYコンビネータは不要になります。 この本は前半十章に相当し、後半十章はSeasoned Schemerに書かれています。その後、マクロを勉強すれば第三巻に相当するReasoned Schemer(miniKanren)に進むことが出来ます。それぞれのタイトルがそこで作成する処理系の性質を表わしています。姉妹編のLittle JavaではデザインパターンのGoF本に出てくるピザパターンを利用した小さな処理系によって関数型言語のリスト処理をエミュレートしています。また、Little MLerではStandard MLという関数型言語を使って型推論を説明しています。これらの幅広い話題の全ての基礎にあたるのが本書です。なお、このシリーズではアルゴリズムについては殆ど触れていないのでSICPをさらに読むことをお勧めします。 |
レビュー詳細商品
レビュアー
![]() |