Blob


1 (define (attach-tag type-tag contents)
2 (if (number? contents)
3 contents
4 (cons type-tag contents)))
5 (define (type-tag datum)
6 (cond ((number? datum) 'scheme-number)
7 ((pair? datum) (car datum))
8 (else (error "Bad tagged datum -- TYPE-TAG" datum))))
9 (define (contents datum)
10 (cond ((number? datum) datum)
11 ((pair? datum) (cdr datum))
12 (else (error "Bad tagged datum -- TYPE-TAG" datum))))
14 (put 'real-part '(complex) real-part)
15 (put 'imag-part '(complex) imag-part)
16 (put 'magnitude '(complex) magnitude)
17 (put 'angle '(complex) angle)