2017-02-13 100 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是一个列表,而不是一个函数。