有没有更好的函数方式来写 flatMap
?
def flatMap[A,B](list: List[A])(f: A => List[B]): List[B] =
list.map(x => f(x)).flatten
概念上,我理解
flatMap
在 flatten
方面.
最佳答案
另一种方法:
def flatMap[A, B](list: List[A])(f: A => List[B]): List[B] =
list.foldLeft(List[B]())(_ ++ f(_))
我不知道“更好”。 (如果我们开始谈论有效的实现,那就是另一种蠕虫......)
关于scala - 实现列表#flatMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436614/