(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
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

