summaryrefslogtreecommitdiff
path: root/coding-exercises/2/83/install-integer.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'coding-exercises/2/83/install-integer.rkt')
-rw-r--r--coding-exercises/2/83/install-integer.rkt6
1 files changed, 6 insertions, 0 deletions
diff --git a/coding-exercises/2/83/install-integer.rkt b/coding-exercises/2/83/install-integer.rkt
index d2f34fb..6972b71 100644
--- a/coding-exercises/2/83/install-integer.rkt
+++ b/coding-exercises/2/83/install-integer.rkt
@@ -27,6 +27,11 @@
a
(gcd-integer b (remainder a b))))
+ (define (reduce-integers n d)
+ (let ((g (gcd-integer n d)))
+ (list (/ n g)
+ (/ d g))))
+
;; methods
(put 'add '(integer integer) (lambda (x y) (+ x y)))
(put 'neg '(integer) (lambda (x) (- x)))
@@ -35,6 +40,7 @@
(put 'div '(integer integer) (lambda (x y) (/ x y)))
(put 'greatest-common-divisor '(integer integer) gcd-integer)
(put 'raise '(integer) raiseme)
+ (put 'reduce '(integer integer) reduce-integers)
;; sqrt and trig methods for complex nums
(put 'expt '(integer integer) expt)
(put 'sqr '(integer) sqr)