sicp
ストリーム続きです。
ストリームの続きです。
今回からストリームを扱います。
代入を導入したことでプログラムに時の概念を与えることができるようになりましたが、並列システムでは少し問題があります。 ということで、問題3.38以降は並列システムでの時に対する正しいプログラムの振る舞いについてです。
今回はデジタル回路のシミュレーションと、制約システムの作り方です。 制約システムは4章でやる論理プログラミングに関わるような印象を受けます(関係ないかもしれないですが)。
3.26(後) 一個前のエントリの続きです。 今回は表の中の二進木の構造を、バランス木として保持するように変更します。 バランス木として保持しないと、木の深さが表の深さと同じになってしまったりした場合に計算量がリストで保持している時と同じになってし…
3.26(前) 3.24や3.25は順序づけられていないリストなので、表が巨大になると効率が悪いかもしれない。 キーが順序集合上の要素であるという条件のもとで、二進木を使って表を実装することを考える。 3.24や3.25の表では、各テーブルのcdrは表の先頭を指して…
二次元表、多次元表の実装です。
3.21-3.23はqueueの実装です。set-car!とset-cdr!を使って実装できます。 例のごとく構成子と選択子を作って実装します。 構成子とか選択子とかの考え方はコードを分かり易くするし、便利な考え方だと思います。
実は3章までやってあるので、途中から始めます。 今日は問題3.5-3.20を飛ばしつつやりました。
SICPがはかどらないので、 今日からblogにできるだけ毎日やったことを書きます。 来年3月くらいまでは頑張ります。