SICP勉強中

Scalaを勉強し始めて、

関数型プログラミングって何??

というところから調べているうちに辿り着いた『計算機プログラミングの構造と解釈』

計算機プログラムの構造と解釈

計算機プログラムの構造と解釈

ありがたいことにHTML版が公開されていることを今更知りました。

計算機プログラムの構造と解釈 第二版

訳文はいいとは言えませんが贅沢は言えません。

初見で、(,)がウネウネと連なってよく分からないと敬遠していたLisp系の言語schemeに触れるいい機会となりました。 サンプルコード、練習問題の実行環境として

The Racket Languageを使っています。

まだようやく第2章まで終えたところでですが、関数型に出会ってまず難解だった、「一級オブジェクトとして扱えるメソッド」という考え方が自分の中で消化出来ただけでも大きなものを得ることができました。 Rubyを触っている時でも,lambda式の使い方が曖昧でしたが、その辺りが大分明るくなりました。

プログラミングの根本に近い部分を勉強でき、思考が鍛えられていると実感できます。

今後の目次を眺めると、ストリーム、遅延評価とScalaで消化不良だったテーマが出てくるので楽しみです。