SICP独学初め

拙者、技術者として幅を広げたいとか、小飼氏の雑誌記事で興味を引かれたということもあったが、読んでみておもしろそうだったので、SICPの独学を始めてみることにする.

Schemeをやるのも初めて。括弧が多く読みにくいということをよく聞くがそうした印象はあまりうけなかった。

まず最初は概要を掴むために、1章2章をざっと見で進めてみる.
ざっと見が終わったら、その後もう一度頭から詳しく見ていこうかと考えている.

まず最初に引っかかったのが
「作用的順序」「正規順序」
いろいろググってみて、
「作用的順序」->値が必要になるまで被演算子を評価しない
※ギリギリまで展開してから評価開始

「正規順序」->使う、使わないにかかわらず、まずすべての引数を評価する.
と理解した.

次に、束縛変数自由変数.
最初、それぞれ「ローカル変数」と「グローバル変数」という意味かなと思ったがどうも違いそうだ.ちょい悩んだ末、

束縛変数 -> ある式の内側で値と名前が紐づけ(束縛)された変数で、その式の中をスコープとする変数

自由変数 -> ある式の範囲外で名前と値が紐づけされている変数(つまり、ある式の中で束縛されていない)

どの変数も式の範囲によっては束縛変数にもなり得るし、自由変数にもなり得る。
変数は「名前」と「値」が必ず紐づけされているので、スコープを広げていけば、すべての変数はどこかで束縛変数になる。

と理解した.(合っているのだろうか・・・・・)

高階手続きは割とすんなり飲み込めた。「処理」と「データ」という分け方をせず、すべてのモノは手続きも含めデータであるという考え方、新鮮でした。
※まだ勉強中で乱暴な表現もあるかもしれない・・・・。

ざっと見の過程で、何問か練習問題をつまんでみた。自分なりの回答は用意してみたが、今日は眠いので次に書くときまとめてみることにする.

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

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