summaryrefslogtreecommitdiff
path: root/coding-exercises/2/78
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2023-05-02 21:33:01 +0200
committerMike Vink <mike1994vink@gmail.com>2023-05-02 21:33:01 +0200
commitbfdb81a05b010e51a7410f3503bfa9f43ccc2f7c (patch)
tree574fabfccbf1282fa301790aca2e0e615d0bd0b5 /coding-exercises/2/78
parent630372114a588a45b9cbc4fb2911aa96ec37cc99 (diff)
finally finished the arithmetic package stuff
Diffstat (limited to 'coding-exercises/2/78')
-rw-r--r--coding-exercises/2/78/complex-polar.rkt6
-rw-r--r--coding-exercises/2/78/complex-rectangular.rkt8
-rw-r--r--coding-exercises/2/78/install-complex-package.rkt4
3 files changed, 9 insertions, 9 deletions
diff --git a/coding-exercises/2/78/complex-polar.rkt b/coding-exercises/2/78/complex-polar.rkt
index 3c8cfe8..725f387 100644
--- a/coding-exercises/2/78/complex-polar.rkt
+++ b/coding-exercises/2/78/complex-polar.rkt
@@ -2,7 +2,7 @@
(provide install-polar-package)
(require "../../../shared/data-directed-programming.rkt")
-(define (install-polar-package put)
+(define (install-polar-package apply-generic put)
(define (magnitude z)
(car z))
(define (angle z)
@@ -10,9 +10,9 @@
(define (make-from-mag-ang r a)
(cons r a))
(define (real-part z)
- (* (magnitude z) (cos (angle z))))
+ (apply-generic 'mul (magnitude z) (apply-generic 'cos (angle z))))
(define (imag-part z)
- (* (magnitude z) (sin (angle z))))
+ (apply-generic 'mul (magnitude z) (apply-generic 'sin (angle z))))
(define (make-from-real-imag x y)
(cons (sqrt (+ (sqr x) (sqr y)))
(atan y x)))
diff --git a/coding-exercises/2/78/complex-rectangular.rkt b/coding-exercises/2/78/complex-rectangular.rkt
index bbc2b8c..be4f0e5 100644
--- a/coding-exercises/2/78/complex-rectangular.rkt
+++ b/coding-exercises/2/78/complex-rectangular.rkt
@@ -3,14 +3,14 @@
(require "../../../shared/data-directed-programming.rkt")
-(define (install-rectangular-package put)
+(define (install-rectangular-package apply-generic put)
(define (real-part z) (car z))
(define (imag-part z) (cdr z))
(define (make-from-real-imag x y) (cons x y))
- (define (magnitude z) (sqrt (+ (sqr (real-part z))
- (sqr (real-part z)))))
+ (define (magnitude z) (apply-generic 'sqrt (+ (apply-generic 'sqr (real-part z))
+ (apply-generic 'sqr (real-part z)))))
(define (angle z)
- (atan (imag-part z)
+ (apply-generic 'atan (imag-part z)
(real-part z)))
(define (make-from-mag-ang r a)
(cons (* r (cos a))
diff --git a/coding-exercises/2/78/install-complex-package.rkt b/coding-exercises/2/78/install-complex-package.rkt
index fa39328..a99b7d5 100644
--- a/coding-exercises/2/78/install-complex-package.rkt
+++ b/coding-exercises/2/78/install-complex-package.rkt
@@ -7,8 +7,8 @@
(define (install-complex-package apply-generic get put)
;; install and import methods
- (install-rectangular-package put)
- (install-polar-package put)
+ (install-rectangular-package apply-generic put)
+ (install-polar-package apply-generic put)
(define (make-from-real-imag x y)
((get 'make-from-real-imag 'rectangular) x y))
(define (make-from-mag-ang r a)