tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
13
Task/Power-set/Scheme/power-set-1.ss
Normal file
13
Task/Power-set/Scheme/power-set-1.ss
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
(define (power-set set)
|
||||
(if (null? set)
|
||||
'(())
|
||||
(let ((rest (power-set (cdr set))))
|
||||
(append (map (lambda (element) (cons (car set) element))
|
||||
rest)
|
||||
rest))))
|
||||
|
||||
(display (power-set (list 1 2 3)))
|
||||
(newline)
|
||||
|
||||
(display (power-set (list "A" "C" "E")))
|
||||
(newline)
|
||||
23
Task/Power-set/Scheme/power-set-2.ss
Normal file
23
Task/Power-set/Scheme/power-set-2.ss
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
(define (power-set lst)
|
||||
(define (iter yield)
|
||||
(let recur ((a '()) (b lst))
|
||||
(if (null? b) (set! yield
|
||||
(call-with-current-continuation
|
||||
(lambda (resume)
|
||||
(set! iter resume)
|
||||
(yield a))))
|
||||
(begin (recur (append a (list (car b))) (cdr b))
|
||||
(recur a (cdr b)))))
|
||||
|
||||
;; signal end of generation
|
||||
(yield 'end-of-seq))
|
||||
|
||||
(lambda () (call-with-current-continuation iter)))
|
||||
|
||||
(define x (power-set '(1 2 3)))
|
||||
(let loop ((a (x)))
|
||||
(if (eq? a 'end-of-seq) #f
|
||||
(begin
|
||||
(display a)
|
||||
(newline)
|
||||
(loop (x)))))
|
||||
7
Task/Power-set/Scheme/power-set-3.ss
Normal file
7
Task/Power-set/Scheme/power-set-3.ss
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
(1 2)
|
||||
(1 3)
|
||||
(1)
|
||||
(2 3)
|
||||
(2)
|
||||
(3)
|
||||
()
|
||||
Loading…
Add table
Add a link
Reference in a new issue