好的,這是我今天在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