(int - > int)是什么意思?

时间:2017-02-26 01:21:01

标签: sml

我正在尝试破译选择部分的含义。从我可以收集的信息来看,它将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

2 个答案:

答案 0 :(得分:1)

(int - > int)表示一个带有1个int参数并返回int的函数。你所定义的不是乘法。 'choice'是一种定义为3元组的类型。 3元组由一个int组成,一个接受int并返回一个int的函数,最后是另一个int。

答案 1 :(得分:1)

首先让我澄清一些我认为你误解的事情:

  • type choice = ...声明choice为"类型构造函数",表示它表示类型而不是。然后右侧是"类型表达式&#34 ;;例如,您可以编写type myInt = int来声明myInt作为int类型的替代名称。
  • int * int,在类型表达式中,并不意味着" int乘以int&#34 ;;相反,它表示int - s"的类型对#。例如,值表达式(1, 2)的类型为int * int

那个偏僻。 。 。 int -> int表示类型"函数,它接受int并返回int"。例如,值表达式fn i => 2 * i是一个取整数并返回整数倍的函数,其类型为int -> int

把它们放在一起,

type choice = int cont * (int -> int) * int

声明choice表示"三元组(3元组),其第一个元素是int cont;其第二个元素是一个带int并返回int的函数;其第三个元素是int"。