Scala 将映射列表元素缩放为根据以前的元素计算的值

Scala 将映射列表元素缩放为根据以前的元素计算的值,scala,functional-programming,Scala,Functional Programming,我在Scala中有一个字符串元素列表: val list = List("a", "b", "c") 是否有任何简洁的方法来构造另一个列表,其中每个第i个元素将由列表的0..i个元素构成(在我的例子中,它是list.take(i+1).mkString(“|”)) 您要查找的是扫描,它使用起始值累积中间累积结果的集合 使用scanLeft进行快速尝试。如果列表为空,则将失败 val list = List("a", "b", "c") list.drop(

我在Scala中有一个字符串元素列表:

val list = List("a", "b", "c")
是否有任何简洁的方法来构造另一个列表,其中每个第i个元素将由列表的0..i个元素构成(在我的例子中,它是
list.take(i+1).mkString(“|”)


您要查找的是
扫描
,它使用起始值累积中间累积结果的集合

使用
scanLeft
进行快速尝试。如果列表为空,则将失败

val list = List("a", "b", "c")                   
list.drop(1).scanLeft(list.head) {
  case (r, c) => r + "|" + c
}                                              
//> res0: List[String] = List(a, a|b, a|b|c)
val list = List("a", "b", "c")                   
list.drop(1).scanLeft(list.head) {
  case (r, c) => r + "|" + c
}                                              
//> res0: List[String] = List(a, a|b, a|b|c)