【发布时间】:2011-05-31 04:45:43
【问题描述】:
我经常发现自己希望使用整数索引多次有效地运行 Clojure 函数(如“dotimes”),但也希望将结果作为现成的序列/列表(如“for”)输出。
即我想做这样的事情:
(fortimes [i 10] (* i i))
=> (0 1 4 9 16 25 36 49 64 81)
显然可以这样做:
(for [i (range 10)] (* i i))
但我想尽可能避免创建和丢弃临时范围列表。
在 Clojure 中实现这一目标的最佳方法是什么?
【问题讨论】:
-
这个问题的最新消息是什么? clj-iterate 是最好的解决方案还是有更好的选择?