Множество подмножеств
Множество можно представить как список его различных элементов, а множество его подмножеств как список списков. Например, если множество равно
(1 2 3)
, то множество его подмножеств равно
(() (3) (2) (2 3) (1) (1 3) (1 2) (1 2 3))
. Закончите следующее определение процедуры, которая порождает множество подмножеств и дайте ясное объяснение, почему она работает:
(define (subsets s)
(if (null? s)
(list nil)
(let ((rest (subsets (cdr s))))
(append rest (map <??> rest)))))
Комментарии отсутствуют.