【发布时间】:2019-05-03 15:59:42
【问题描述】:
但是如何调用一个接受 [X -> Y] 和 X 并返回 [Y] 的函数? IE。一个函数,它接受一个函数列表和一个值,并在列表中的所有函数都应用于给定参数时返回一个结果列表。
大多数常见的简单高阶函数在大多数编程语言中都有一致的简单名称:
- 如果一个函数接受 [X] 和 f: X -> Y 并返回一个 [Y},那么它通常称为 map。 (有时是方法,有时是函数,但原理始终相同)
- 如果函数接受 [X] 和 f: X -> 布尔值并返回 [X],则称为过滤器。
- 如果函数接受 [X] 和 f: X -> [Y] 并返回 [Y],则称为 flatMap。
请注意,用任何支持函数式编程的语言来实现它当然是微不足道的,这不是我的问题。我的问题是关于命名。我还没有找到任何内置的语言,所以我无法从任何地方复制名称。但感觉这是一个如此基本的东西,应该有一个全球理解的名字。
【问题讨论】:
-
那不就是 Map-FlatMap 的合成吗?
-
sequencein Haskell 这样做。 -
Clojure 称之为`juxt',是“并置”的缩写。
标签: functional-programming naming