以功能样式加入下一个元素

问题描述 投票:1回答:3

我正在尝试找到一种方法来“加入”/“groupby”列表中的2个元素,如下所示:

List("a","b","c","d")  -> List("ab","bc","cd")

具有实用的风格。

有人会知道怎么做吗?

需要我使用reducer,fold,scan,其他高阶函数吗?

scala list functional-programming higher-order-functions
3个回答
7
投票

Sliding使用滑动窗口创建子集合,然后您只需将此子列表映射到字符串:

List("a","b","c","d").sliding(2,1).map{case List(a,b) => a+b}

6
投票

尝试

val xs = List("a","b","c","d")
(xs, xs.tail).zipped.map(_ ++ _) // List(ab, bc, cd)

4
投票

您可以使用sliding创建一个窗口:

val l = List("a","b","c","d")
val res = l.sliding(2).map(_.reduce(_ + _))
res.foreach(println)

这个结果

ab
bc
cd
© www.soinside.com 2019 - 2024. All rights reserved.