■
暫定的にSICP3章を読了したことにする.
3.1 ローカルな状態
代入を使った状態変数を取り入れる.
3.2 The Environment Model of Evaluation
要するにスコープがどう扱われるかの説明?
3.3 Modeling with Mutable Data
代入(局所変数の変更)によってモデリングする.
代入によって思いがけない(意図しない)変化が生じることも説明.
3.3.1-3.3.3 基本的な例
3.3.4 論理回路のシミュレーション
そこそこの規模での練習.問題文の意図などについて精読するべきか.
3.3.5 制約伝播 3.3.4のおさらい?
3.4 並列プログラミング
状態オブジェクトの実用例としてセマフォ,ミューテックスを説明しているだけかと思っていたが,そもそもなぜそれらが必要になるのか?といえば時間をモデルに導入したからで,時間を扱うことで生じる問題を喚起している?
3.5 ストリーム
タイトルだけでIO関係?と早合点していたが,自分が想像したものはIOストリームであってIOはストリーム全体ではなかった.おそらく他の節でもこの手の誤読を繰り返しているはず.
y=f(t)の形式で表現できれば,代入を使わずに時間を表現できるというパラダイム(?).
プログラムが実行される時間とは別の時間軸・系列を導入できるとプログラムが分離できる.綺麗に記述できる=部品化できてうれしいよ.という話か?
a = b;を代入だと思っていたが,1回しかaに値が設定されないなら,それは定義であって,a = b;のあとに a = c;が行われることで初めて代入になるんだとようやく気づく.
問題3.76 2つの処理が交じり合っていて,部品化がうまく出来ていない.修正せよ(大意).耳が痛い.
「前節ではこういう風に問題を取り扱ったんだけど,今回は違うやり方でやってみる」というような書かれ方が多いので,理解できないまま読み進んでから,ほほう.そういう意味だったのか.と思うことが多い.注釈にも「これについては○章○節でさらに詳しく検討する」とか書かれているので,現状通り流し読みして,必要そうな場所だけ読み返す方針でいく.