summaryrefslogtreecommitdiff
path: root/coding-exercises/2/83/install.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'coding-exercises/2/83/install.rkt')
-rw-r--r--coding-exercises/2/83/install.rkt25
1 files changed, 25 insertions, 0 deletions
diff --git a/coding-exercises/2/83/install.rkt b/coding-exercises/2/83/install.rkt
index 3f923f0..0812405 100644
--- a/coding-exercises/2/83/install.rkt
+++ b/coding-exercises/2/83/install.rkt
@@ -12,6 +12,13 @@
test-complex-rect
make-complex-polar
test-complex-polar
+ term
+ dense-termlist
+ sparse-termlist
+ make-polynomial
+ test-poly1
+ test-poly2
+ test-poly3
=zero?
equ?
add
@@ -30,6 +37,7 @@
"./install-rational.rkt"
"./install-real.rkt"
"./install-complex.rkt"
+ "./polynomials.rkt"
"../../../shared/data-directed-programming.rkt")
@@ -44,6 +52,7 @@
(install-rational put get)
(install-real put get)
(install-complex apply-fn get put)
+(install-polynomial get put apply-fn)
(define (install-arithmetic-package)
(list get put apply-fn))
@@ -77,8 +86,24 @@
(apply-fn 'angle test-complex)))
;; polynomial
+(define (term order coeff)
+ ((get 'make-from-order-coeff 'term) order coeff))
+(define (sparse-termlist . terms)
+ ((get 'make-from-terms 'sparse-termlist) terms))
+(define (dense-termlist . terms)
+ ((get 'make-from-terms 'dense-termlist) terms))
(define (make-polynomial var terms)
((get 'make 'polynomial) var terms))
+(define test-poly1 (make-polynomial 'x (sparse-termlist
+ (term 1 test-integer))))
+(define test-poly2 (make-polynomial 'x (sparse-termlist
+ (term 100 test-complex)
+ (term 2 test-real)
+ (term 1 test-rat)
+ (term 0 test-integer))))
+(define test-poly3 (make-polynomial 'x (sparse-termlist
+ (term 50 test-rat)
+ (term 0 2))))
;; generic methods
(define (equ? a1 a2)