summaryrefslogtreecommitdiff
path: root/coding-exercises/2/19.rkt
blob: d0ade7f23c56c0a8b8062008d1e735560a293d64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#lang racket
(require sicp)

(define (cc-list amount kinds-of-coins)
  (cond ((= amount 0) 1)
        ((or (< amount 0) (empty? kinds-of-coins)) 0)
        (else (+ (cc-list amount 
                          (cdr kinds-of-coins))
                 (cc-list (- amount 
                             (car kinds-of-coins)) 
                          kinds-of-coins)))))

(define us-coins (list 50 25 10 5 1))
(cc-list 100 us-coins)

(define uk-coins (list 100 50 20 10 5 2 1 0.5))
(cc-list 100 uk-coins)