SICP 読み (203) 4.3.1 amb と探索

問題 4.36 (つづき

i と j を加算させるために_失敗_なルールを教えてあげれば良いはず。失敗ルールがダウトかどうかは別として、以下なカンジで良いのかなぁ。

(define (a-pythagorean-triple-between start)
  (let ((i (an-integer-starting-from start)))
    (let ((j (an-integer-starting-from i)))
      (require (> (+ (* i i) (* j j)) (* (+ j 1) (+ j 1))))
      (let ((k (an-integer-starting-from j)))
	(require (>= (+ (* i i) (* j j)) (* k k)))
	(require (= (+ (* i i) (* j j)) (* k k)))
	(list i j k)))))

require に渡す条件式なソレは微妙。確認は別途。(ってスルーの可能性高い

問題 4.37

ぱっと見、_調べなければならない可能性_としては

(require (integer? k))

がダウトじゃね??と。
わしの解答がダウトな可能性は非常に高いですが、明日は次の節を検討予定。