2017-02-13 13 views
0

私は、2つのリストが順序を考慮せずに同じ要素を持っているかどうかを比較しようとしています。関数オブジェクトが正しくありません

element-of?要素は、これがリストかどうかを確認するために私のコードです

`(define (element-of? x set) 
    (cond ((null? set) #f) 
     ((equal? x (car set)) #t) 
     (else (element-of? x (cdr set))))) 
` 

設定に属している場合は、設定された機能の一部をチェックすることです「」リスト「B」

`(define (check-unit-match cmp-to cmp-with) 
    (cond ((null? cmp-to) #t) 
     (else (let ((cmp-val (element-of? (car cmp-to) cmp-with))) 
       (and cmp-val (check-unit-match (cdr cmp-to) (cmp-with))))))) 
` 

私が悪い取得していますと同じ要素を持っています(m 2)(m 2)(sec 1)) (チェック単位一致 '((sec 1)(m 2))' ))

+0

最初の引数のすべての要素が2番目の要素の要素ではなく、2つのリストが同じ要素を持つかどうかは比較しません。例えば。 '(check-unit-match '(1 2 3)'(1 2 3 4 5 6 7)); ==>#t' – Sylwester

答えて

0

最終ラインcontai ns (cmp-with)。それは関数アプリケーションです。しかし、cmp-withはリストであり、関数ではありません。

関連する問題