我有一个简单的任意元素序列,我想减少二乘二。
为了做到这一点,我生成数据对,但我这样做是错误的,因为我需要调用一个生成数据的函数两次:
(defn gen-pairs [l]
(partition 2 (drop 1 (take l (interleave (gen-data) (gen-data))))))
如何避免两次调用gen-data
(gen-data
懒惰地返回一系列项目,例如range
?
答案 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))