さかもとのブログ

つらつらと

演習問題4.35,4.36,4.37

非決定性計算に入る.
基本的には深さ優先探索を考えればいいみたい.
計算機プログラムの構造と解釈P.248より,

非決定性プログラムの長所は,探索の仕方の細部を隠すことができ,われわれのプログラムをより高い抽象レベルで表現できることである.

参考

ambとrequireの関係が少しわかった.

  • 4.35
(define (an-integer-between low high)
  (require (< low high))
  (amb low (an-integer-between (+ low 1) high)))
  • 4.36

末尾や途中のリストが無限だと,1つ前に戻ることができない.
kの無限探索となってしまい,jに戻ることができない.またjからiへ戻ることができない.

  • 4.37

kは, iとjで自動的に決まるが,4.35のプログラムでは,kも探索の対象となっている.
したがって,Benの方が効率がよい.