|
|
1
44
函数组合是将两个函数“组合”为一个函数的方法。下面是一个例子: 假设您具有以下功能:
你想定义你自己的
最明显的方法是:
但使用函数组合可以更简洁地做到这一点:
这个
其中特别有用的一个场景是消除对显式lambda的需求。例如:
可重写为:
稍微短一点,出错的空间就少了。 |
|
|
2
30
有趣的侧记。函数组合在逻辑上等同于三段论:
三段论将两个实质性的含义组合成一个:
因此…
…哪种类型的
|
|
|
3
13
这个
作文
属于
这个身份可能会启发我们:
如果你有一个爪哇/ C背景,考虑这个例子:
|
|
|
4
7
这个例子是人为的,但是假设我们
我们要写一个计算x^2+1的函数。我们可以写
(意味着
这意味着什么
因为f=inc,g=sqr)。 |
|
|
5
5
函数组合是将两个或多个函数链接在一起的一种方法。它经常被比作壳体管道。例如,在一个Unix样式的shell中,您可能会编写类似
这运行
严格来说,这就像哈斯克尔
注意,与shell示例不同,它从右向左读取。所以我们从
函数组合运算符,
请注意,我们并没有向其中输入列表。相反,我们刚刚创建了一个新函数,我们可以向该函数提供几个不同的列表。例如,您可以将此函数命名为:
或者您可以将它作为参数传递给另一个函数:
你基本上可以在任何地方使用它,你可以使用任何其他类型的函数。它只是一种快速易读的表达方式,“我想把这些函数连接在一起”。 |
|
|
6
4
从 HaskellWiki page on function composition:
现在
|