ここ1年ぐらいかけて超ダラダラとSICPっつー本読んでるんですけど、5章中の4章まで来たところでなんとなく読んだ記録とかを文章に残そうかと思いついたので、まぁ雑な感じでここに張っつけていきます。
その前にSICPの説明をすると、原題"Structure and Interpretation of Computer Programs"は大学のコンピュータサイエンスの教科書として刊行され計算機科学教育の古典的書物となっており関数型言語の勉強するならこの本だよネ的な感じであり書籍内のプログラムの記述には全ての言語の頂点に立つと呼び声高い割には実務で使われてる形跡がとんと見当たらない事でおなじみで最近では声優3人組のアイドルユニットと名前がカブって声優オタとプログラマー困惑と思ったらIETFの新プロトコルの名前ともカブっててどーすんだよめんどくせぇ感ただようプログラミング言語Lispが使用されており本の内容は全てネットで公開されてるけど全部英語なので読めねーよ的な場合でも邦訳版の「計算機プログラムの構造と解釈」が出版されてるから安心だネと思ったら翻訳がいまひとつでありお値段定価4830円なのである。
ついでに4章以前も軽く説明しておくと、1章ではプログラミング言語の教科書でおなじみの"Hello World!"は完璧にスルーしつつ、使用するデータを数値のみに絞って数値計算の手続き構築について述べており、関数と変数と数値と条件分岐を用いて再起と高階関数の概念を説明している。
2章でやっとこ数値以外のデータを持ってきたと思ったらデータを2つしか入れられないconsとかいう箱を出してきて、「こんだけあれば足りんだろ」みたいな顔してリストや木構造、複素数に多項式算術演算システムまでconsで作りあげたりする。途中で画像を扱うプログラムをいじると思ったら「画像を表示したり作ったりする関数はウチじゃ扱ってないんだけど、あるっていうテイで話を進めます」とか言いだすから困る。
3章では既に定義してある変数のデータを書き換える方法を導入し、っていうかCとか触った人からしたら逆に2章で変数の書き換えをしなかった事の方が難易度高いような気もするが、ともかくこれによって今流行りのオブジェクト指向的に問題をオブジェクト毎に分割して対象の変化を内部状態の書き換えでシミュレートできるようになってこりゃいいやと思った次の瞬間マルチスレッドみたいな並列実行だとオブジェクトが爆発するからダメだダメだダメだそんな時にはテレレテッテレー!遅延ストリーム!みたいな。
そんな感じで、3章まではLispの上にいろんな物を積み上げてく感じで話が進んでいくが、4章からは下方向に、つまりLispがどんな仕組みで動いてるのか的な事を掘り進める感じで話が進んでいくみたいなんだけどここまで書いて既に思いっきり疲れ切っちゃったし子牛に餌やる時間だし今日はここまでで終わりだヨ!次は今年中に書ければまぁいいかなーぐらいの意気込みで続けていきたい。
Author:だめねぎ
辛そうにゲームやるのが得意