我还是Scheme的新手,并尝试通过call / cc和amb运算符解决魔术方块。目前正在打印出来:
1 1 1 31 Row 1
16 16 1 1 Row 2
16 1 16 1 Row 3
1 16 16 1 Row 4
我无法弄清楚为什么它只使用这些数字。这是我的特色吗?程序?这是我的代码:
;; check whether an element of one given list is a member of any
;; of the other given lists
(define distinct?
(lambda (o l)
(if (null? l)
#t
(if (= (car l) o)
'()
(distinct? o (cdr l))))))
答案 0 :(得分:0)
我注意到你的不同之处?'过程永远不会返回错误值。你遇到的问题是你的断言总是通过。当你完全删除assert的调用时,可以看到这一点,结果没有改变。在嵌套的if检查中,你应该用布尔值false替换你的'():#f