handball/src/test/run-pass/fib.scm

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)