好的,这是我今天在Scheme中的第4个问题,对于Scheme还是很新的,因为我需要在当天使用我的子功能I asked earlier之一。如何在计划中将Mulitpule计算的值分配到列表中
基本上这将返回2个列表的差异。说你有(1,5)
和(5,1)
这个功能应该还给我8。由于对w
l
之间的距离,这是我有。注意:如果我将(list( - (car l)(car w)))更改为(write .....),该函数将起作用,但输出2个数字,我不知道如何将这些数字用作输入我的其他功能。
所以我尽量把它放进名单,但并没有真正奏效,它返回我没有错误,但奇怪的东西
(define (difference l w) ; calc heuristic function estimation
(if (> (car l) (car w))
(list (- (car l) (car w)))
(if (< (car l) (car w))
(list (- (car w) (car l)))))
(if (< (list-ref l 1) (list-ref w 1))
(list (- (list-ref l 1) (list-ref w 1)))
(if (> (list-ref l 1) (list-ref w 1))
(list (- (list-ref w 1) (list-ref l 1)))))
)
下面是代码返回我
> (difference '(9 1) '(3 1))
#<procedure:...0\assigment 2.ss:50:3>
有任何想法吗?尝试使用lambda结束同样的事情。
某人?帮助plz – Jonathan 2009-10-16 18:27:22
我不太确定我了解你的功能正在尝试做什么。 – 2009-10-16 18:28:52
基本上我试图从2个列表中计算2个项目的差异。假设我从列表A中的第一个项目中获得1,并从列表B中的第一个项目中获得1个。我想先查看哪一个更大,然后做减法,它会返回列表中第一项的差异。与列表的第二项相同的东西。 一旦我得到两个数字,我把它们加在一起我得到了总差异,在我的情况下,从A到B的距离 – Jonathan 2009-10-16 18:40:14