blob: 7cc68e8ac9b45d7b7b92152736f76c07e2c7b57b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
(define (make-table)
(list '*table*))
(define (key-assoc key records)
(cond
[(null? records) #f]
[(equal? key (caar records)) (car records)]
[else (key-assoc key (cdr records))]))
(define (lookup key table)
(let ([r (key-assoc key (cdr table))])
(if r
(cdr r)
#f)))
(define (table-insert! key value table)
(let ([r (key-assoc key (cdr table))])
(if r
(set-cdr! r value)
(set-cdr! table (cons (cons key value)
(cdr table))))))
|