计划中的魔术广场

时间:2013-03-06 22:37:38

标签: math scheme callcc magic-square

我还是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))))))

1 个答案:

答案 0 :(得分:0)

我注意到你的不同之处?'过程永远不会返回错误值。你遇到的问题是你的断言总是通过。当你完全删除assert的调用时,可以看到这一点,结果没有改变。在嵌套的if检查中,你应该用布尔值false替换你的'():#f