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