1.2

1.2.1

  • recursive process
  • recursive procedure

この二つは全然違う.recursive procedureはprocedureが自信を呼び出している構文の表現.recursive processは,プロセスが進行の仕方であって構文上の話ではない.

(define (factorial n)
  (fact-iter 1 1 n))
(define (fact-iter product counter max-count)
  (if (> counter max-count)
      product
      (fact-iter (* counter product)
		 (+ counter 1)
		 max-count)))

この階乗の計算方法はrecursive procedureにより実装されているが,recursive processではなくiterative processである.こうなるのは末尾再帰のおかげ.末尾再帰でスタックレス*1にループが記述できるから,whileなどのループはシンタクスシュガーでしかない.

演習問題

1.10を(A 2 6)とかやってout of memoryでEmacsがメモもろとも死亡したから掲載は割愛
アッカーマンやべえええ

*1:こんな言葉あるんかしらん