Blame


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