一个程序员将如何从1开始连续产生两个连续的幂?
我看到文档http://clojuredocs.org/clojure_core/1.2.0/clojure.core/iterate但仍然需要帮助.谢谢.
将任务分为两个步骤.
如果您首先创建一个懒惰的无限(无需事先决定您需要的最大功率)2的幂序列,您可以随后以您选择的任何方式对其进行切片和切块
(def powers-of-2 (iterate (partial *' 2) 2))
获得前n个权力
(take 5 powers-of-2)
获得低于70的权力
(take-while (partial > 70) powers-of-2)
添加:
其实我更喜欢更一般的形式:
(defn powers-of [n] (iterate (partial *' n) n))
(take 5 (powers-of 2))
除了你更有一般性,除非你有效率问题,通过每次调用一个新的延迟序列的高阶函数你避免保持头部并允许内存被垃圾收集.