实现List#flatMap

Kev*_*ith 6 functional-programming scala

有更好的功能性写作方式flatMap吗?

def flatMap[A,B](list: List[A])(f: A => List[B]): List[B] =
    list.map(x => f(x)).flatten
Run Code Online (Sandbox Code Playgroud)

从概念上讲,我理解flatMap的是flatten.

Set*_*sue 11

另一种方法:

def flatMap[A, B](list: List[A])(f: A => List[B]): List[B] =
  list.foldLeft(List[B]())(_ ++ f(_))
Run Code Online (Sandbox Code Playgroud)

我不知道"更好".(如果我们开始谈论有效的实施,那就是另一种蠕虫...)