元素假設我們有兩個列表:結合的2所列出
val l1=List("a","b","c")
val l2 = List("1","2","3")
我要的是:List("a1", "b2", "c3")
即與L2
的一種方式的第n個元素添加L1的第n個元素實現它是:
(l1 zip l2).map (c => {c._1+c._2})
我只是想知道是否可以用Applicative實現它。我想:
(l1 |@| l2) { _+ _ }
但它給所有的組合:
List(a1, a2, a3, b1, b2, b3, c1, c2, c3)
任何想法?
謝謝
伯努瓦
你想要一個ziplist。 Haskell在http://en.wikibooks.org/wiki/Haskell/Applicative_Functors#ZipLists上有一個。我不確定斯卡拉茲是否有一個,但我也沒有看過。 – 2012-02-06 20:50:30
@DerekWyatt:謝謝德里克。 missingfaktor已經提供了答案 – bhericher 2012-02-06 21:05:45