我想寫一個程序,它將在列表中添加數字。但是,當我將輸入作爲列表輸入時,Scheme不會給出輸出。計劃返回錯誤類型申請列表輸入
我的代碼如下:
(define (sumlist lst)
(cond ((pair? lst) (+ (car lst) (sumlist(cdr lst))))))
爲什麼會出現這種情況?我正在給予正確的輸入,即我在引用列表。
我給輸入如下: (sumlist '(1 2 3))
編輯: 我稍微改變了問題。該列表未在pair? 'lst
中引用,這就是我遇到錯誤的原因。 現在,我沒有收到錯誤。但是,我也沒有得到任何輸出。
EDIT2: 我在pair? lst
沒有引用列表。但是,現在它給了我以下錯誤:在arg2中錯誤類型# 我已經相應地更新了代碼。
我不認爲你明白函數應用程序如何在方案語法中表示。這應該是'(汽車1st)'和'(sumlist(cdr lst))'。 – 2015-02-09 05:10:38
'(pair?'lst)'看起來有嫌疑...... – leppie 2015-02-09 05:11:40
@leppie那也是。奇怪的是,這是'(pair?lst)',直到幾分鐘前,OP編輯了這個問題。 – 2015-02-09 05:12:17