迭代一个序列,在每个步骤中访问当前项目和以下项目

iterate a sequence, accessing current item and the following in each step

比如说,我有 5 个 javaScript 个对象存储在一个向量中:

(def v [o1 o2 o3 o4 o5])

他们每个人都有一个方法"connect",它获取另一个对象作为参数。

手动我现在会:

o1.connect(o2);
o2.connect(o3);
o3.connect(o4);
o4.connect(o5);

什么是自动化的好方法?

我只想到了一些奇怪的解决方案:如:

(doseq [[a b] (zipmap (butlast v) (rest v))]
  (.connect a b))

有没有更好的方法?

您可以使用 partition:

(doseq [[a b] (partition 2 1 v)]
  (.connect a b))