2013-02-20 33 views
-2

球拍是給我一個合同違反以下代碼:這個附錄有什麼問題?

(define (fringe x) 
    (append (car x) (fringe (cdr x)))) 

任何想法有什麼錯呢?

+1

沒有上下文,你根據希望人們知道什麼功能'fringe'是應該做的。不要讓我們猜測:告訴我們應該做什麼。 – dyoo 2013-02-20 21:28:46

回答

3

這是因爲(car x)返回列表(這是很難說肯定不知道的是x的崛起錯誤的實際值)。 append是在兩個列表之間定義的操作。如果要在列表的開頭添加元素,請使用cons而不是append

這就是我的意思是:

(append 1 '(2 3)) 
=> append: expected argument of type <proper list>; given 1 

(append '(1) '(2 3)) 
=> '(1 2 3) 

(cons 1 '(2 3)) ; the recommended way! 
=> '(1 2 3)