我剛開始用球拍編程,現在我遇到以下問題。 我有一個列表的結構,我必須將列表中的所有價格加起來。結構中的球拍列表
(define-struct item (name category price))
(define some-items
(list
(make-item "Book1" 'Book 40.97)
(make-item "Book2" 'Book 5.99)
(make-item "Book3" 'Book 20.60)
(make-item "Item" 'KitchenAccessory 2669.90)))
我知道,我可以返回的價格:(item-price (first some-items))
或(item-price (car some-items))
。
問題是,我不知道如何將所有物品價格與此相加。
回答奧斯卡·洛佩斯: 我可能填補空白不正確的,但拍紀念碼黑色當我按下啓動和不返回任何東西。
(define (add-prices items)
(if (null? items)
0
(+ (first items)
(add-prices (rest items)))))
這是功課? (如果是這樣,你應該這樣標記)無論如何,我認爲你應該看看[任意大數據]的章節(http://www.ccs.neu.edu/home/matthias/HtDP2e/請參閱HTDP2e中的part_two.html)以瞭解如何設計在列表上運行的函數。 –
同意。特別是,如何設計程序第2版有一章講述如何編寫處理任意大小列表的函數:http://www.ccs.neu.edu/home/matthias/HtDP2e/part_two.html – dyoo
@Tim你的基本情況是錯誤的 - 只需回答這個問題:空列表的價格是多少?零!只寫'0'。你不能像這樣在列表中添加一個數字:'(+ 0項)' –