0

私はまだ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))))))
4

1 に答える 1

0

私はあなたの「独特の?」に気づきました。プロシージャが false 値を返すことはありません。あなたが直面している問題は、アサートが常にパスすることです。これは、assert の呼び出しを完全に削除した場合に見られ、結果は変わりません。ネストされた if チェック内で、'() をブール値の false に置き換える必要があります: #f

于 2013-03-07T02:35:53.937 に答える