如何在 10 行上打印一个包含 n 个(例如 10 个)数字的列表?我刚刚了解了循环和递归,但似乎无法结合副作用 (println i)
与 (recur (+ i 1))
以循环形式。
只是要非常清楚:我想要这样的输出:
1
2
3
4
5
6
7
8
9
10
当 n 为 10 时。
最佳答案
您可以为此使用doseq,这意味着在迭代涉及副作用时使用,
(doseq [i (range 10)]
(println i))
您可以使用 map 指出,但这会产生一个充满 nils 的序列,这既不惯用又浪费资源,而且 dosq 也不是懒惰的,所以不需要用 doall 强制它。
关于loops - 如何在clojure中的每一行打印数字列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6520699/