Add add3 operation
This is to test coercion of >2 arguments.
This commit is contained in:
parent
89a52bb489
commit
b8981693d2
6
2_78.rkt
6
2_78.rkt
|
@ -101,6 +101,8 @@
|
|||
(define (exp x y) (apply-generic 'exp x y))
|
||||
(put 'add '(scheme-number scheme-number)
|
||||
(lambda (x y) (tag (+ x y))))
|
||||
(put 'add3 '(scheme-number scheme-number scheme-number)
|
||||
(lambda (x y z) (tag (+ x y z))))
|
||||
(put 'sub '(scheme-number scheme-number)
|
||||
(lambda (x y) (tag (- x y))))
|
||||
(put 'mul '(scheme-number scheme-number)
|
||||
|
@ -146,6 +148,8 @@
|
|||
(define (tag x) (attach-tag 'rational x))
|
||||
(put 'add '(rational rational)
|
||||
(lambda (x y) (tag (add-rat x y))))
|
||||
(put 'add3 '(rational rational rational)
|
||||
(lambda (x y z) (tag (add-rat x (add-rat y z)))))
|
||||
(put 'sub '(rational rational)
|
||||
(lambda (x y) (tag (sub-rat x y))))
|
||||
(put 'mul '(rational rational)
|
||||
|
@ -240,6 +244,8 @@
|
|||
(define (tag z) (attach-tag 'complex z))
|
||||
(put 'add '(complex complex)
|
||||
(lambda (z1 z2) (tag (add-complex z1 z2))))
|
||||
(put 'add3 '(complex complex complex)
|
||||
(lambda (z1 z2 z3) (tag (add-complex z1 (add-complex z2 z3)))))
|
||||
(put 'sub '(complex complex)
|
||||
(lambda (z1 z2) (tag (sub-complex z1 z2))))
|
||||
(put 'mul '(complex complex)
|
||||
|
|
Loading…
Reference in New Issue