In using, lists as sets, we wish to judge the list (a b c) and (b c a) as equal because they contain the same elements. Also, we wish to judge sets that contain sets, such as ( a (b c d) e), to be equal to ( e a (c d b)). Implement a scheme predicate called set-equal? that takes as input two lists representing sets and returns true if the lists represent the same set and false otherwise. The difference between this predicate and the one discussed in detail in class is that this predicate will support sets of sets to any degree of nesting, e.g., sets of sets of sets. Thus, the call (set-equal? ‘(a (b (c d))) ‘( ((d c) b) a)))) should return #t and the call (set-equal? ‘(a (b (c d))) ‘( (d c b) a)))) should return #f. Racket code only please. No loops or hash.
In using, lists as sets, we wish to judge the list (a b c) and (b c a) as equal because they contain
the same elements. Also, we wish to judge sets that contain sets, such as ( a (b c d) e), to be
equal to ( e a (c d b)).
Implement a scheme predicate called set-equal? that takes as input two lists representing sets
and returns true if the lists represent the same set and false otherwise. The difference between
this predicate and the one discussed in detail in class is that this predicate will support sets of sets
to any degree of nesting, e.g., sets of sets of sets. Thus, the call
(set-equal? ‘(a (b (c d))) ‘( ((d c) b) a))))
should return #t and the call
(set-equal? ‘(a (b (c d))) ‘( (d c b) a))))
should return #f.
Racket code only please. No loops or hash.
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 1 images