gpt4 book ai didi

list - 结构中的 Racket 列表

转载 作者:行者123 更新时间:2023-12-01 04:45:57 27 4
gpt4 key购买 nike

我刚开始使用 Racket 编程,现在遇到以下问题。我有一个带有列表的结构,我必须将列表中的所有价格相加。

(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)) .

问题是,我不知道如何将所有商品的价格加起来。


对 Óscar López 的回答:我可能没有正确填写空白,但是当我按下开始时 Racket 将代码标记为黑色并且不返回任何内容。

  (define (add-prices items)
(if (null? items)
0
(+ (first items)
(add-prices (rest items)))))

最佳答案

简答:使用递归遍历列表。这看起来像是家庭作业,所以我会给你一些提示;填空:

(define (add-prices items)
(if (null? items) ; if the list of items is empty
<???> ; what's the price of an empty list?
(+ <???> ; else add the price of the first item (*)
(add-prices <???>)))) ; with the prices of the rest of the list

(*) 请注意,您已经知道如何编写这部分,只需使用适当的程序获取列表中第一项的价格即可!

有很多方法可以解决这个问题。我提议的方法是遍历列表、对每个元素进行操作并递归组合结果的标准方法。

关于list - 结构中的 Racket 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13274933/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com