summaryrefslogtreecommitdiff
path: root/coding-exercises/1/chapter117.rkt
blob: 4a78d54b74a6051694224a2f4ef3a0c72be7c239 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
(define (halve a) (/ a 2))
(define (double a) (* a 2))

(define (miter s a b)
  (cond ((= b 0) s)
        ((even? b) (miter s (double a) (halve b)))
        (else (miter (+ s a) (double a) (halve (- b 1))))))

(define (m a b)
  (miter 0 a b))

(m 3 5)