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

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)