問題解答
問1.8
これは手を動かすだけ。 improve を式のままに置き換えて終了です。
ちなみに確認用に pow も定義してみました。
(define (pow x y) (if (= 1 y) x (* x (pow x (- y 1)))))
本文
1.1.8 ブラックボックス抽象としての手続き
変数のスコープの話。内部定義とブロック構造で、問1.6の回答で出てきた記法の解説。このようなやり方を静的有効範囲(lexical scoping)という。
1.2 手続きとその生成するプロセス
線形再帰プロセスと線形反復プロセス。最初、二つの例がどう違うのかよくわからなかったものの、if は条件を評価した結果を評価してるだけだから、スタックに積まれるというわけではないという解釈でいいんでしょうかね?普通のプログラミング言語だとどちらも再帰になりそうな気がするんだけど。
P.20 まで本文を読み進めるとまさにそのあたりのことが記述されている。再帰的プロセスと再帰的手続きの違い。