123456789101112131415161718192021222324252627282930313233343536373839 |
- #lang racket
- (define (genFig n)
- (let loop ((f '())
- (k 0))
- (if(< k n)
- (loop (cons (genRow n k) f)
- (+ k 1))
- f)))
- (define (genRow len pos)
- (let loop ((v '())
- (k 0))
- (if (< k len)
- (loop (cons (if(= pos k) 1 0) v)
- (+ k 1))
- v)))
- (define (iterate f v)
- (delay (cons v (iterate f (f v)))))
- (define (take n iter)
- (if (= n 0)
- '()
- (let ((v (force iter)))
- (cons (car v) (take (- n 1) (cdr v))))))
- (define (infinity)
- (+ 1 (infinity)))
- (define (fst x y) x)
- (define lazy-infinity (delay (infinity)))
- (force (fst 3 lazy-infinity))
- (delay (force infinity))
- (fst 10 lazy-infinity)
- (take 10 (iterate (lambda (x) (+ x 1)) 5))
- (define succession (iterate (lambda (x) (+ x 1)) 3))
- (print succession)
|