函数类型的顺序是什么:int - > int - > int - > INT

时间:2015-11-08 23:48:54

标签: sml

函数类型的顺序是什么: int - > int - > int - > INT

我真的不明白问题是什么或从哪里开始弄清楚答案。我似乎无法在任何地方找到任何有用的页面。

1 个答案:

答案 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。