【发布时间】:2014-04-08 04:00:55
【问题描述】:
我的向量定义为:
(x1, x2, …, xn) and (y1, y2, …yn)
我正在尝试像这样计算它们:
sqrt((x1-y1)*(x1-y1) + (x2-y2)*(x2-y2) + … + (xn-yn)*(xn-yn))
我在处理超过 2 个元素的向量时遇到了问题。我一直在尝试使用 for-each 循环,但无法使递归正常工作。
此外,除了最终数字的 sqrt 之外,我可以获得所有内容。我试图将最终数字定义为变量,然后取该变量的 sqrt,但我的解释器说了一些关于“在表达式中定义不允许......”。
到目前为止我的工作代码:
(define vectordistance
(lambda (v1 v2)
(if
(null? v1) 0
(+
(*
(- (car v1) (car v2))
(- (car v1) (car v2))
)
(vectordistance (cdr v1) (cdr v2))
)
)
))
【问题讨论】:
标签: scheme