【发布时间】:2017-12-14 10:58:53
【问题描述】:
我想知道这是否是循环遍历集合的正确方法:
(def citrus-list ["lemon" "orange" "grapefruit"])
(defn display-citrus [citruses]
(loop [[citrus & citruses] citruses]
(println citrus)
(if citrus (recur citruses))
))
(display-citrus citrus-list)
我有三个问题:
- 最终打印显示为 nil,是否可以或如何避免?
- 我了解 & 在此示例中的作用,但在其他情况下我看不到,也许您可以提供一些示例
- 还有其他例子可以得到相同的结果吗?
谢谢, R.
【问题讨论】:
-
这取决于你想对集合中的每个项目做什么。如果您只想像在这里一样打印,那么
doseq是一个不错的选择。但是map、reduce、loop/recur和iterate都可以遍历集合中的所有项目。
标签: clojure