実験
(define (queens) (let ((q1 (amb 1 2 3 4 5 6 7 8)) (q2 (amb 1 2 3 4 5 6 7 8)) (q3 (amb 1 2 3 4 5 6 7 8)) (q4 (amb 1 2 3 4 5 6 7 8)) (q5 (amb 1 2 3 4 5 6 7 8)) (q6 (amb 1 2 3 4 5 6 7 8)) (q7 (amb 1 2 3 4 5 6 7 8)) (q8 (amb 1 2 3 4 5 6 7 8))) (require (distinct? (list q1 q2 q3 q4 q5 q6 q7 q8))) (list q1 q2 q3 q4 q5 q6 q7 q8)))
- これだと最初の答え(1 2 3 4 5 6 7 8)が出るまでに20秒くらいかかる
- ななめ判定を加えるとかなり遅くなるはず
- 一方、きのう書いた多段letのやつは最初の8queenが一瞬で出てくる
- ということで、問題4.44は、オーダーが大きくなると多段letじゃないと苦しいという例だと理解