Clojure按顺序复制元素

时间:2016-04-05 13:35:09

标签: clojure clojurescript

我有一个简单的任意元素序列,我想减少二乘二。

为了做到这一点,我生成数据对,但我这样做是错误的,因为我需要调用一个生成数据的函数两次:

(defn gen-pairs [l]
  (partition 2 (drop 1 (take l (interleave (gen-data) (gen-data))))))

如何避免两次调用gen-datagen-data懒惰地返回一系列项目,例如range

1 个答案:

答案 0 :(得分:3)

如果您包含一个您想要的输出示例,那么您的问题会更清楚,但我认为您在partition之后的步骤为1:

user=> (partition 2 1 [1 2 3 4 5 6 7])
((1 2) (2 3) (3 4) (4 5) (5 6) (6 7))