blob: 31d644655efb3a040695901e3f4a31acc1e2b094 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
;;;; License: CC0-1.0
(define-module (net ricketyspace sicp two thirtytwo)
#:export (subsets))
(define (subsets s)
(if (null? s)
(list '())
(let ((rest (subsets (cdr s))))
(append rest (map (lambda (item) (cons (car s) item)) rest)))))
;;; Guile REPL
;;;
;;; scheme@(guile-user)> ,use (net ricketyspace sicp two thirtytwo)
;;; scheme@(guile-user)> (subsets '(1 2 3))
;;; $6 = (() (3) (2) (2 3) (1) (1 3) (1 2) (1 2 3))
|