函数类型的顺序是什么: int - > int - > int - > INT
我真的不明白问题是什么或从哪里开始弄清楚答案。我似乎无法在任何地方找到任何有用的页面。
答案 0 :(得分:3)
首先,ML是一种函数式语言,所以如果你缺少SML特定的材料,你仍然可以从任何函数式语言参考中收集有用的信息。阅读有关一阶和高阶函数的信息应该有所帮助。然而,这不是一个ML(或SML)问题,而是一个函数式编程问题。
警告我的功能知识可能生锈:
如果函数的参数和结果值都是“数据”,那么函数是第一顺序,即不是其他函数。如果函数将另一个函数作为参数或将函数作为参数返回,则函数为高阶函数。
然后将高阶函数的阶数定义为比其参数或返回值的阶数多一个。
函数类型 int - > int 描述了一个接受int并输出int的函数。因此,这是一阶函数,阶数为1。
函数类型 int - > int - > int 描述了一个接受int的函数,并输出(一个接受int并输出int的函数),例如我们可以改写
int -> int -> int
作为
int -> (int -> int)
因此,接受int的函数的输出是另一个(一阶)函数,就像我之前描述的那样。
现在,我们知道参数(int)的顺序是1(它只是数据,而不是函数),以及输出的顺序(例如,第一顺序函数int - > ; int)也是1,因此整个函数类型的顺序 int - > int - >因此,是1 + 1,例如2.
通过类似的扩展,它遵循函数类型的顺序
int -> int -> int -> int
是3。