0
我正在學習計劃小模擬程序並且遇到了一個奇怪的麻煩。 這裏是我的代碼:計劃if語句
(define rember
(lambda (a lat)
((if (null? lat)
'()
(cond
((eq? a (car lat)) (cdr lat))
(else (rember a (cdr lat))))))))
(rember 'aaa '(bbb aaa))
我在教科書中使用的「如果」,而不是「電導率」。當從尾遞歸返回時,它顯示了這個錯誤:
application: not a procedure;
expected a procedure that can be applied to arguments
given: '()
arguments...: [none]
我想這是因爲它把「()在if語句的功能和尾遞歸作爲其參數的返回值。但是由於這本書沒有給我這麼多關於該語言的細節,你能否爲我解釋一下這一點? (例如,這實際上是某種語言功能嗎?在這段代碼中,我可以堅持使用「if」嗎?何時可以安全地使用「if」?)
謝謝。
[球拍PLAI應用程序不是一個程序]可能的副本(http://stackoverflow.com/questions/19022704/racket-plai-application-not-a-procedure) –
感謝您的提醒。我曾搜索過它,但很難找出相關性,因爲我是一個剛剛開始的新手:)。 – babel92
通常,由於最好的做法是在問題中包含完整的錯誤信息,用引號搜索錯誤信息將幫助您找到它(因爲較早的用戶,假設他們遵循了慣例)將會將其包含在他們的問題中。 –