summaryrefslogtreecommitdiff
path: root/coding-exercises/2/83/install.rkt
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2023-05-04 21:05:31 +0200
committerMike Vink <mike1994vink@gmail.com>2023-05-04 21:05:31 +0200
commita3c770f64ce5ee5e2ee3ca2c41a94c111d35c3c2 (patch)
tree69d62261f96f11ece423041aeb847f64d10ce76a /coding-exercises/2/83/install.rkt
parent3fdd0f8042574874a34999291e00cb550cf91e2d (diff)
bugs
Diffstat (limited to 'coding-exercises/2/83/install.rkt')
-rw-r--r--coding-exercises/2/83/install.rkt50
1 files changed, 48 insertions, 2 deletions
diff --git a/coding-exercises/2/83/install.rkt b/coding-exercises/2/83/install.rkt
index 109862e..0cd8bbf 100644
--- a/coding-exercises/2/83/install.rkt
+++ b/coding-exercises/2/83/install.rkt
@@ -11,7 +11,21 @@
make-complex-rect
test-complex-rect
make-complex-polar
- test-complex-polar)
+ test-complex-polar
+ =zero?
+ equ?
+ add
+ sub
+ mul
+ div
+ sinme
+ cosme
+ atanme
+ sqrme
+ sqrtme
+ raiseme
+ dropme)
+
(require "./install-integer.rkt"
"./install-rational.rkt"
"./install-real.rkt"
@@ -34,7 +48,7 @@
(define (install-arithmetic-package)
(list get put apply-fn))
-;; test running
+;; constructors
;; integer
(define (make-integer n)
((get 'make 'integer) n))
@@ -60,3 +74,35 @@
(define test-complex (make-complex 1 2))
(define test-complex-rect (make-complex-rect 1 2))
(define test-complex-polar (make-complex-rect 1 2))
+
+;; polynomial
+(define (make-polynomial var terms)
+ ((get 'make 'polynomial) var terms))
+
+;; generic methods
+(define (equ? a1 a2)
+ (apply-fn 'equ? a2))
+(define (=zero? datum)
+ (apply-fn '=zero? datum))
+(define (add a1 a2)
+ (apply-fn 'add a1 a2))
+(define (sub a1 a2)
+ (apply-fn 'sub a1 a2))
+(define (mul a1 a2)
+ (apply-fn 'mul a1 a2))
+(define (div a1 a2)
+ (apply-fn 'div a1 a2))
+(define (raiseme datum)
+ (apply-fn 'raise datum))
+(define (dropme datum)
+ (apply-fn 'project datum))
+(define (sqrme datum)
+ (apply-fn 'sqr datum))
+(define (sqrtme datum)
+ (apply-fn 'sqrt datum))
+(define (cosme datum)
+ (apply-fn 'cos datum))
+(define (sinme datum)
+ (apply-fn 'sin datum))
+(define (atanme a1 a2)
+ (apply-fn 'atan a2))