29 lines
465 B
Scheme
29 lines
465 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)
|