给定n,x,f: 我想要输出表格:
[x, f(x), f(f(x)), f(f(f(x))), ..., f^{n-1}(x)]
这可以通过减少
来完成(reductions
(fn [state _] (f state))
state
(range n))
是否存在提供更短解决方案的原语?
答案 0 :(得分:8)
你想要的是clojure.core/iterate,它提供了f -> x -> [x, f(x), f^2(x), f^3(x), ...]
和clojure.core/take,它提供了一种方法来切割序列中的第一个n
元素。 take
是惰性的,iterate
也是如此,因此无法保证副作用。