[racket] exercise 6.6.3 htdp
(define H 300)
(define L 300)
(define-struct cirkel (posn number color))
(define cirkel1 (make-cirkel(make-posn (/ H 2) (/ L 2)) (/ L 4) 'red))
;; fun-for-circle: circle --> ?
;;(define (fun-for-circle circle) ...)
;;(define (fun-for-circle c)
;;(draw-solid-disk (cirkel-posn c)(cirkel-number c) (cirkel-color c)))
(define (square x)(* x x))
(define (distance x1 x2) (- x1 x2))
(define (x-cirkel cirkel) (posn-x (cirkel-posn cirkel)))
(define (y-cirkel cirkel) (posn-y (cirkel-posn cirkel)))
(define (y-pos pos) (posn-y pos))
(define (x-pos pos) (posn-x pos))
(define (distance-to-center C pos)
(sqrt (+(square(distance (x-cirkel C) (x-pos pos)))(square (distance
(y-cirkel C)(y-pos pos))))))
(define (in-circle? C pos)
(> (cirkel-number C) (distance-to-center C pos)))
(in-circle? cirkel1 (make-posn 150 224)) --> true
(in-circle? cirkel1 (make-posn 150 225)) --> false
I'm not happy with my in-circle? function
to many define's needed
nested structures is the main cause why this simple program becomes
complicated
but how can one solve this problem more elegant?
thx
Frank
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20111130/10d8cdb8/attachment.html>