Add amb and distinct?
This commit is contained in:
19
test.scm
19
test.scm
@@ -80,3 +80,22 @@
|
||||
(assert-equal 2 (number-generator))
|
||||
(assert-equal 3 (number-generator))
|
||||
(assert-equal 4 (number-generator))))
|
||||
|
||||
(define-test-suite "amb"
|
||||
(define-test "liars"
|
||||
(define (liars)
|
||||
(amb-reset)
|
||||
(let ([betty (amb 1 2 3 4 5)]
|
||||
[ethel (amb 1 2 3 4 5)]
|
||||
[joan (amb 1 2 3 4 5)]
|
||||
[kitty (amb 1 2 3 4 5)]
|
||||
[mary (amb 1 2 3 4 5)])
|
||||
;; The "Liars" problem
|
||||
(amb-require (distinct? betty ethel joan kitty mary))
|
||||
(amb-require (or (= kitty 1) (= betty 3)))
|
||||
(amb-require (or (= ethel 1) (= joan 2)))
|
||||
(amb-require (or (= joan 3) (= ethel 5)))
|
||||
(amb-require (or (= kitty 2) (= mary 4)))
|
||||
(amb-require (or (= mary 4) (= betty 1)))
|
||||
(list betty ethel joan kitty mary)))
|
||||
(assert-equal '(3 5 2 1 4) (liars))))
|
||||
|
||||
Reference in New Issue
Block a user