球拍 - 比较/分析两种结构

时间:2016-02-10 02:09:53

标签: racket

所以我的作业有以下标准:

给出了名为euclidean-distance的函数的定义。此函数计算xy平面中两点之间的距离。这些点以四个单独的数字给出:x1,y1,x2和y2。

重写函数,使其接受两个参数,两个参数都是Posn类型,并运行相同的计算。

> (define the-origin (make-posn 0 0))
> (define some-point (make-posn 3 7))
> (euclidean-distance the-origin some-point)
#i7.615773105863909
> (euclidean-distance (make-posn 1 1) (make-posn 4 5))
5

我的麻烦在于,我不确定如何提取我需要的信息,以便比较差异等等。到目前为止我所拥有的:

(define (euclidean-distance posn1 posn2)
   (sqrt (+ (sqr (- posn1-x posn2-x))
            (sqr (- posn1-y posn2-y)))))

不确定如何处理我需要做的事情。

1 个答案:

答案 0 :(得分:2)

只需使用每个职位的访问者程序,如下所示:

(define (euclidean-distance posn1 posn2)
   (sqrt (+ (sqr (- (posn-x posn1) (posn-x posn2)))
            (sqr (- (posn-y posn1) (posn-y posn2))))))