通过应用单变量函数将旧的延迟序列转换为新的延迟序列

时间:2012-08-26 06:50:27

标签: clojure lazy-evaluation

假设在clojure中我有一个懒惰的序列(a b c d .....)并且假设我有一个单变量函数f(x)。如何将旧的延迟序列转换为新的延迟序列(f(a)f(b)....)。即我寻求转型。谢谢:

(a b ....) [lazy] -> (f(a) f(b) ....) [also lazy]

1 个答案:

答案 0 :(得分:6)

map完成您需要的一切。它保留了你应用它的序列的“懒惰”。

(map f old-lazy-sequence)
=> [new-lazy-sequence]

无限范围的示例:

(take 5 
  (map (partial * 2) 
       (range)))
=> (0 2 4 6 8)