scala - 实现列表#flatMap

标签 scala functional-programming

有没有更好的函数方式来写 flatMap ?

def flatMap[A,B](list: List[A])(f: A => List[B]): List[B] =
    list.map(x => f(x)).flatten

概念上,我理解 flatMapflatten 方面.

最佳答案

另一种方法:

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/

相关文章:

haskell - J 风格的副词、 fork 等是否通过主流函数式语言的库进行了模拟?

java - 使用 Scala 和 Jackson 以及 java.lang.Integer 或 scala.Int 对泛型类型进行奇怪的反序列化问题

scala - 除最后一个项目外,所有内容均来自Scala迭代器(也称为Iterator.init)

lambda - 方案中的lambda是什么

functional-programming - 标准机器学习入门

haskell - 闭包是否违反了函数式编程范式?

java - 如何在 Sql 中转义分号

scala - 何时在 Scala 中使用关键字 return

Scala:获取干净的类名

haskell - 如何让 Haskell 计算正确的多态类型?