]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ch3_3_3_1d.rkt
Better explanation of the unless procesure if it is not defined
[sicp.git] / src / sicp / ch3_3_3_1d.rkt
1 #lang r5rs
2
3 (define (lookup key table)
4   (let ((record (assoc key (cdr table))))
5     (if record
6         (cdr record)
7         #f)))
8
9 (define (assoc key records)
10   (cond 
11     ((null? records) #f)
12     ((equal? key (car (car records))) (car records))
13     (else (assoc key (cdr records)))))
14
15 (define (insert! key value table)
16   (let ((record (assoc key (cdr table))))
17     (if record
18         (set-cdr! record value)
19         (set-cdr! table
20                   (cons (cons key value) (cdr table)))))
21   'ok)
22
23 (define (make-table)
24   (list '*table*))