代码之家  ›  专栏  ›  技术社区  ›  Quentin Geff

以函数式的方式将elem与下一个连接起来

  •  1
  • Quentin Geff  · 技术社区  · 7 年前

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

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

    有人知道怎么做吗?

    我需要使用减缩、折叠、扫描等高阶功能吗?

    3 回复  |  直到 6 年前
        1
  •  9
  •   Krzysztof Atłasik    7 年前

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

    List("a","b","c","d").sliding(2,1).map{case List(a,b) => a+b}
    
        2
  •  6
  •   Dmytro Mitin    7 年前

    尝试

    val xs = List("a","b","c","d")
    (xs, xs.tail).zipped.map(_ ++ _) // List(ab, bc, cd)
    
        3
  •  5
  •   Andronicus    7 年前

    sliding 要创建窗口:

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

    ab
    bc
    cd
    
    推荐文章