;; equal-as-sets? : set * set -> bool ;; set = a list of distinct scheme values ;; usage: (equal-as-sets? ans correct-ans) ;; compares ans and correct-ans to see if one is a permutation of ;; the other. Elements are compared using equal?. ;; ans and correct-ans are permutations iff they are the same length ;; and each element of correct-ans is a member of ans. (define equal-as-sets? (lambda (ans correct-ans) (and (= (length ans) (length correct-ans)) (let loop ((correct-ans correct-ans)) (if (null? correct-ans) #t (and (not (member (car correct-ans) (cdr correct-ans))) (member (car correct-ans) ans) (loop (cdr correct-ans))))))))