【发布时间】:2012-07-08 20:23:08
【问题描述】:
Clojure 函数
(reductions + 0 (cycle [1 1 -1]))
产生一个序列 [0 1 2 1 2 3 2 3 4 3 4 5 ...]。不幸的是,这个序列并不懒惰。
由于cycle 和reductions 都被记录为返回惰性序列,我希望这些函数的这种组合也能返回一个惰性序列。为什么不,我该如何修复它以延迟返回序列?
显示相同问题的更复杂示例:
(reductions (fn [x f] (f x)) 0 (cycle [inc inc dec]))
(我展示这个,因为这是我希望最终使用的那种版本,以防万一有什么不同)
【问题讨论】:
标签: clojure functional-programming lazy-evaluation