summaryrefslogtreecommitdiff
path: root/coding-exercises/2/83
diff options
context:
space:
mode:
Diffstat (limited to 'coding-exercises/2/83')
-rw-r--r--coding-exercises/2/83/install-integer.rkt3
-rw-r--r--coding-exercises/2/83/install-rational.rkt2
2 files changed, 4 insertions, 1 deletions
diff --git a/coding-exercises/2/83/install-integer.rkt b/coding-exercises/2/83/install-integer.rkt
index 2fabf3a..ca1ebb5 100644
--- a/coding-exercises/2/83/install-integer.rkt
+++ b/coding-exercises/2/83/install-integer.rkt
@@ -16,6 +16,7 @@
(put 'make 'integer (lambda (x) (tagme (make x))))
;; methods
(put 'add '(integer integer) (lambda (x y) (tagme (make (+ x y)))))
+ (put 'neg '(integer) (lambda (x) (tagme (- x))))
(put 'sub '(integer integer) (lambda (x y) (tagme (make (- x y)))))
(put 'mul '(integer integer) (lambda (x y) (tagme (make (* x y)))))
(put 'div '(integer integer) (lambda (x y) (tagme (make (/ x y)))))
@@ -23,7 +24,7 @@
;; sqrt and trig methods for complex nums
(put 'sqr '(integer) sqr)
(put 'sqrt '(integer) sqrt)
- (put 'atan '(integer) atan)
+ (put 'atan '(integer integer) atan)
(put 'cos '(integer) cos)
(put 'sin '(integer) sin)
;; predicates
diff --git a/coding-exercises/2/83/install-rational.rkt b/coding-exercises/2/83/install-rational.rkt
index 96dcef1..73640b7 100644
--- a/coding-exercises/2/83/install-rational.rkt
+++ b/coding-exercises/2/83/install-rational.rkt
@@ -46,6 +46,8 @@
;; interface
(put 'add '(rational rational)
(lambda (x y) (tagme (add-rat x y))))
+ (put 'neg '(rational)
+ (lambda (rat) (tagme (neg-rat rat))))
(put 'sub '(rational rational)
(lambda (x y) (tagme (sub-rat x y))))
(put 'mul '(rational rational)