1 (define (test-case actual expected)
10 ;; Exercise 2.32. We can represent a set as a list of distinct elements, and we can represent the set of all subsets of the set as a list of lists. For example, if the set is (1 2 3), then the set of all subsets is (() (3) (2) (2 3) (1) (1 3) (1 2) (1 2 3)). Complete the following definition of a procedure that generates the set of subsets of a set and give a clear explanation of why it works:
15 (let ((rest (subsets (cdr s))))
18 (cons (car s) subset))
21 (test-case (subsets '(1 2 3)) '(() (3) (2) (2 3) (1) (1 3) (1 2) (1 2 3)))
23 ;; what we're doing here is breaking down the problem from originally trying
24 ;; to find all the subsets of S to instead finding the subsets
25 ;; of all but the first number
26 ;; we then take this and add it to all the subsets without the first number
27 ;; but now with the first number put in the front