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

29 lines
465 B
Scheme
Raw Normal View History

2021-12-27 20:43:12 +00:00
#lang scheme
(define (displayln x)
(display x)
(newline))
2021-12-27 20:43:12 +00:00
(define (my-or a b)
(if a #t b)) ; Test was written before we had `or`
2021-12-27 20:43:12 +00:00
(define (fib-base? n)
(my-or (= n 1) (= n 0)))
2021-12-27 20:43:12 +00:00
(define (fib n)
(if (fib-base? n) 1 (+ (fib (- n 1)) (fib (- n 2)))))
2021-12-27 20:43:12 +00:00
(define (pfib n)
(displayln n)
(displayln (fib n))
(newline))
2021-12-27 20:43:12 +00:00
(define (pfibs n)
(if (= n (- 1))
0 ; Hack
((lambda ()
(pfib n)
(pfibs (- n 1)))))) ; Hack
2021-12-27 20:43:12 +00:00
(pfibs 10)