2013-03-06 6 views
0

저는 Scheme에 아직 익숙하지 않아/cc와 amb 연산자를 통해 마법의 사각형을 풀려고합니다. 현재 출력 중입니다 :Scheme의 Magic Squares

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

'고유 한?' 프로 시저는 절대로 false 값을 반환하지 않습니다. 당신이 달려들고있는 문제는 당신의 주장이 항상 통과한다는 것입니다. 이것은 assert 호출을 모두 제거 할 때 볼 수 있으며 결과는 변경되지 않습니다. 중첩 된 if 체크 내에서 '()을 부울 false로 바꿔야합니다. #f