【问题标题】:Clojure duplicate elements in sequenceClojure按顺序重复元素
【发布时间】:2016-07-25 11:42:33
【问题描述】:

我有一个简单的任意元素序列,我想将其减少为 2 到 2。

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

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

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

【问题讨论】:

  • 一种方法是编写您自己的interleave 版本,将gen-data 函数作为其参数。

标签: clojure clojurescript


【解决方案1】:

如果你包含一个你想要什么输出的例子,你的问题会更清楚,但我认为你在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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 2013-05-27
    • 2016-08-10
    • 2021-07-16
    • 2018-03-18
    相关资源
    最近更新 更多