2015-12-28 48 views
2

斯卡拉Seq具有zipWithIndex方法:什麼是Scala的zipWithIndex的Clojure等價物?

def zipWithIndex[A1 >: A, That](implicit bf: CanBuildFrom[Seq[A], (A1, Int), That]): That

拉鍊這個序列與它的指標。

返回:包含由該序列的所有元素組成的對的新序列與其索引配對。指數在0

例子開始:List("a", "b", "c").zipWithIndex = List(("a", 0), ("b", 1), ("c", 2))

什麼是Clojure中的等價功能?

回答

7

Clojure的map-indexed會給你一個集合中元素的索引列表。

user=> (map-indexed vector "foo") 
([0 \f] [1 \o] [2 \o]) 
1

由於@jmargolisvt回答map-indexed是一個很好的解決方案。

隨着你的榜樣得到了指數作反向計算與收集的物品,你可以隨時與反向組成:
(map-indexed (comp reverse list) ["a", "b", "c"])

或映射了兩個序列:
(map list ["a", "b", "c"] (range))

相關問題