1
我正在寫一個遞歸函數,它接受一個元素A和一個列表L,並返回一個列表等於L,但每次出現的A都被刪除。以下是我已經寫了:遞歸函數不工作'「程序車中錯誤的類型參數」
(define (remove A L)
(cond ((eq? A (car L)) (remove A (cdr L)))
((not(eq? A (car L))) (cons (car L) (remove A (cdr L))))
((null? L) '())
)
)
編譯和運行,我得到以下錯誤:
/tmp/compile/5c6515d8-e155-11e5-9605-aa00009baa05/input/main.scheme:2:21: In procedure remove:
/tmp/compile/5c6515d8-e155-11e5-9605-aa00009baa05/input/main.scheme:2:21: In procedure car: Wrong type argument in position 1 (expecting pair):()
'cond'中的最後一種情況應該只是'else'。實際上,一些Scheme實現甚至不允許它成爲其他任何東西。 – mobiuseng