Sml (int->;int)是什么意思?
我想解释一下这篇文章的类型选择部分的含义。据我所知,它将一个Sml (int->;int)是什么意思?,sml,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 (int->int)
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
(int->int)表示接受1个int参数并返回一个int的函数。您定义的不是乘法“choice”是定义为3元组的类型。三元组由一个int组成,一个接受int并返回int的函数,最后是另一个int。让我首先澄清一些我认为您误解的事情:
将type choice=…
声明为“类型构造函数”,这意味着它表示类型而不是值。右侧则是“类型表达式”;例如,您可以编写choice
来声明type myInt=int
作为myInt
类型的替代名称int
在类型表达式中,并不表示“一个int乘以一个int”;相反,它表示类型“成对int*int
-s”。例如,值表达式int
的类型为(1,2)
int*int
int->int
表示类型“接受int
并返回int
的函数”。例如,值表达式fni=>2*i
,它是一个接受整数并返回该整数的两倍的函数,其类型为int->int
把这些放在一起
type choice = int cont * (int -> int) * int
声明choice
表示“一个三元组(3元组),其第一个元素是int cont
;其第二个元素是一个函数,它接受int
,并返回int
;其第三个元素是int
”