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

What is the order of the function type : int -> int -> int -> int

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

我不太明白问题在问什么或从哪里开始找出答案。我似乎无法在任何地方找到任何关于 sml 的有用页面。

首先,ML 是一种函数式语言,因此如果您缺乏特定于 SML 的 material,您应该仍然能够从任何函数式语言参考资料中收集有用的信息。阅读有关一阶和高阶函数的信息应该会有所帮助。然而,这并不是真正的 ML(或 SML)问题,而是函数式编程问题。

请注意,我的功能知识可能生锈了:

如果一个函数的参数和结果值都是"data",则该函数是一阶的,也就是说,不是其他函数。如果一个函数以另一个函数作为参数或 returns 一个函数作为参数,则该函数是高阶的。

然后,高阶函数的阶数被定义为比其参数或 return 值的阶数多一。

函数类型int -> int描述了一个接受一个int并输出一个int的函数。因此,这是一阶函数,阶数为 1。

函数类型 int -> int -> int 描述了一个接受 int 并输出的函数 (a function takes an int and output an int), 例如我们可以重写

int -> int -> int 

作为

int -> (int -> int)

所以采用 int 的函数的输出是另一个(一阶)函数,就像我之前描述的那样。

现在,我们知道参数 (int) 的顺序是 1(它只是数据,不是函数), output 的顺序(例如第一个order function int -> int) 也是 1,因此整个函数类型 int -> int -> int 的顺序因此是 1+1,例如2.

通过类似的扩展,函数类型的顺序如下

int -> int -> int -> int 

是 3。