我正在尝试破译其中的类型选择部分的含义。据我所知,它是将一个int乘以(int -> int),再乘以另一个int。我只是对(int -> int)是什么意思感到困惑。任何帮助都将不胜感激。
val callcc = SMLofNJ.Cont.callcc
val throw = SMLofNJ.Cont.throw
type 'a cont = 'a SMLofNJ.Cont.cont
type choice = int cont * (int -> int) * int发布于 2017-02-26 09:43:52
( int -> int )表示接受1个int参数并返回一个int的函数。你定义的不是乘法。“‘choice”是一种定义为3元组的类型。3元组包括一个int,一个接受int并返回int的函数,最后是另一个int。
发布于 2017-02-26 09:46:12
让我首先澄清一些我认为您误解了的事情:
type choice = ...将choice声明为“类型构造函数”,这意味着它表示的是类型而不是值。右边是一个“类型表达式”;例如,您可以编写type myInt = int来将myInt声明为类型表达式中的整数type.int * int,的替代名称,这并不意味着“一个整数乘以一个整数”;相反,它表示类型“一对int-s”。例如,值表达式int * int.的类型为(1, 2)
别挡道。。。int -> int表示“接受int并返回int的函数”类型。例如,值表达式fn i => 2 * i具有int -> int类型,它是一个接受整数并返回该整数的两倍的函数。
把这些放在一起,
type choice = int cont * (int -> int) * int将choice声明为“一个三元组(三元组),其第一个元素是int cont;其第二个元素是一个接受int并返回int的函数;其第三个元素是一个int”。
https://stackoverflow.com/questions/42463643
复制相似问题