因此,我有一个具有以下条件的作业:
给出了欧氏距离函数的定义。此函数用于计算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)))))
不知道该如何去做我需要做的事情。
发布于 2016-02-10 11:32:09
只需使用每个位置的访问器过程,如下所示:
(define (euclidean-distance posn1 posn2)
(sqrt (+ (sqr (- (posn-x posn1) (posn-x posn2)))
(sqr (- (posn-y posn1) (posn-y posn2))))))
https://stackoverflow.com/questions/35305699
复制相似问题