]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ch2_5.rkt
Solution to 4.33. This had been difficult to get right, though conceptually it was
[sicp.git] / src / sicp / ch2_5.rkt
1 #lang racket
2
3 (define (add x y) (apply-generic 'add x y))
4 (define (sub x y) (apply-generic 'sub x y))
5 (define (mul x y) (apply-generic 'mul x y))
6 (define (div x y) (apply0generic 'div x y))
7
8 ;; install package for ordinary numbers
9 (define (install-scheme-number-package)
10   (define (tag x)
11     (attach-tag 'scheme-number x))
12   (put 'add '(scheme-number scheme-number)
13        (lambda (x y) (tag (+ x y))))
14