21 lines
440 B
Scheme
21 lines
440 B
Scheme
#lang scheme
|
|
|
|
(define (displayln x) (display x) (newline))
|
|
|
|
(define (my-or a b) (if a #t b)) ; Test was written before we had `or`
|
|
|
|
|
|
(define (fib-base? n) (my-or (= n 1) (= n 0)))
|
|
|
|
(define (fib n)
|
|
(if (fib-base? n) 1
|
|
(+ (fib (- n 1)) (fib (- n 2)))))
|
|
|
|
|
|
(define (pfib n) (displayln n) (displayln (fib n)) (newline))
|
|
|
|
(define (pfibs n)
|
|
(if (= n (- 1)) 0 ; Hack
|
|
((lambda () (pfib n) (pfibs (- n 1)))))) ; Hack
|
|
|
|
(pfibs 10) |