【发布时间】:2015-11-27 18:35:43
【问题描述】:
我正在尝试一些代码,可以简单地打印出列表中的所有内容。
- 我定义 numberList
-
我创建了一个循环 - 如果列表为空,则打印出一条消息并退出。否则,获取列表中的第一项,将其打印出来,然后在列表中重复出现除第一个元素之外的所有内容。
(def numberList [1, 2, 3, 4, 5]) (loop [nums numberList] (when (empty? nums) (println "All done!")) (def first_item (first nums)) (println first_item) (recur (rest nums)) )
此代码导致打印“全部完成!”的无限循环。和空背靠背。
【问题讨论】:
-
(if (empty?nums) (println "All done!") (do (def first_item (first nums)) (println first_item) (recur (rest nums)))) 因为
(when ...不像(if ...那样有条件地分支
标签: clojure functional-programming