2017-02-13 34 views
0

我想比較兩個列表是否有相同的元素,而不考慮順序。壞函數對象

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)(sec 1))

當我通過以下參數 (check-unit-match'((sec 1)(m 2))'((m 2)(sec 1) ))

+0

如果兩個列表具有相同的元素,而不是第一個參數中的每個元素都是第二個元素的成員,那麼您並沒有進行比較。例如。 '(check-unit-match'(1 2 3)'(1 2 3 4 5 6 7)); ==>#t' – Sylwester

回答

0

Your final line contai ns (cmp-with)。這是一個功能應用程序。但是cmp-with是一個列表,而不是一個函數。