Scala:连接字符串的高阶函数

Joã*_*ves 0 scala

我从Scala开始,现在我在讨论高阶函数,但是我很难用函数作为输入来处理这种编程方式.

我必须使用fold,scan和/或reduce来编写一个更高阶的函数连接一个字符串,如下所示:

concatenate(List("S", "T", "R", " example!") , f)
//> res1: List[String] = List(STR example!, TR example!, R example!, " example!", "")
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能解决这个问题?

Psi*_*dom 5

scan仅限使用:

List("S", "T", "R", " example!").reverse.scan("")((x, y) => y + x).reverse
// res72: List[String] = List(STR example!, TR example!, R example!, " example!", "")
Run Code Online (Sandbox Code Playgroud)

用途scanRight:

List("S", "T", "R", " example!").scanRight("")(_+_)
// res73: List[String] = List(STR example!, TR example!, R example!, " example!", "")
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢你!你能告诉我这是做什么的:"(x,y)=> y + x"? (2认同)