我正在阅读一本书,使用 F# 进行函数式编程,它说(第 33 页),在高阶函数的声明部分
我们已经看到了像 (+) 和 (<<) 这样的高阶内置函数
并在本节末尾
高阶函数也可以通过在 let 声明中提供如下参数来定义:
let weight ro s = ro * s ** 3.0;;
然而,在我今天早些时候提出的一个问题的底部有一些有用的评论(最初的标题是“我什么时候应该把我的函数写成高阶函数”)似乎对这些例子是否真的更高提出了一些疑问——订单功能。
高阶函数(也称为函数形式、泛函或函子)是至少执行以下操作之一的函数: (i) 将一个或多个函数作为输入;(ii) 输出一个函数。
一方面,我可以看到类似(+)
和的函数weight
可能被视为高阶函数,因为给定一个参数它们返回一个函数。另一方面,我可以看到它们被正确地视为柯里化函数。我正在学习 F# 作为一个自学项目,并希望将概念弄清楚,因此本网站上的答案和讨论特别有帮助。
我的问题是,这些函数的正确术语是什么,也许更重要的是,人们通常如何使用术语“高阶函数”和“柯里化函数”?