SICP 1.1
SICPの復習も兼ねて、学んだ内容を自分なりに噛み砕くため、
大枠と必要なら詳細をブログに書いてみる事にした。
不定期に。
1.1 プログラムの要素
1.1.1
schemeの演算規則など、基本的な文法説明。
1.1.2
defineと環境(大域環境の説明)
1.1.4
合成手続きの説明と実例。
defineについて再度説明。
defineによる手続きの定義は、すなわちその環境における手続きに対する名称の対応付けである。
1.1.5
置き換えモデルの説明。
3章で説明が出てくるが、set!等の破壊的代入が導入されるとこのモデルは破綻する。
作用的順序(applicative-order evaluation)と正規順序(normal-order evaluation)の違い。
実際にインタプリタが採用しているのは作用的順序(単純な展開ではなく、引数の評価と作用を行う)
schemeの式を眺めたとき、全ての部分式を展開するといった解釈方法は誤り。
1.1.6
condと特殊形式if
ifは何故特殊形式なのか?
- > (if predicate consequent alternative)
のcons.とalt.は共に単一の式で無ければならない。
q1.5
- > 正規順序によるインタプリタでは、処理が無限ループに入る。
1.1.7
小数・分数の扱い方の違い
まとめ
1.1はschemeの言語としての部品と処理系に関する基本的な話。
以上、終わり。