我是計劃新手,試圖理解我的功課。 我有個功能我提出早期稱爲重複,它看起來像這樣:計劃問題(使用函數作爲參數)
(DEFINE (duplicate lis)
(IF (NULL? lis) '())
((CONS (CAR lis) (CONS (CAR lis) (duplicate (CDR lis))))
))
典型的I/O從這將是I:(重複「(1 2 3 4))○: (1 1 2 2 3 3 4 4),所以基本上它複製列表中的所有內容。 繼續: 現在我應該做一個叫做comp的功能。 它應該這樣就可以了:
(DEFINE (comp f g) (lambda (x) (f (g (x))))
在那裏我可以輸入「(1 2 3 4),它會返回(1 1 4 4 9 9 16 16)
因此f = 重複和g = lambda。 我知道拉姆達大概應該是這樣的:
(lambda (x) (* x x))
但這裏有一個問題開始的地方,我已經花了這幾個小時,你可以看到沒有取得很大進展。
任何幫助,將不勝感激。 此致敬禮。
1.在comp()中你不能有'(x)'; 'x'不是一個函數:它應該是'(gx)'而不是'(g(x))'2.要使用帶'lambda'的'comp',你的(lambda(x ..))需要工作在列表中與'double'兼容;實際上,這個'lambda'只能用於一個數字。沒有循環就很難做到。 – frayser 2010-11-15 14:04:08