【问题标题】:What is the order of the function type : int -> int -> int -> int函数类型的顺序是什么:int -> int -> int -> int
【发布时间】:2015-11-09 10:12:49
【问题描述】:

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

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

【问题讨论】:

    标签: sml


    【解决方案1】:

    首先,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 -> int 的顺序是 1+1,例如2.

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

    int -> int -> int -> int 
    

    是 3。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 2016-02-26
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      相关资源
      最近更新 更多