【发布时间】:2015-06-09 02:05:52
【问题描述】:
在 SML/NJ repl 中,接受以下表达式:
- val 'a a = [];
val a = [] : 'a list
- val 'a a = 1;
val a = 1 : int
这里的'a 是什么意思?我不知道他们会产生什么效果,这个定义在定义中,但是我在Programming in Standard ML中找不到相关的描述。
请!
【问题讨论】:
-
变量因值而异:变量“x”,假设其类型为 int,它的值可以是 1、2、3、4 或任何其他 int。类型变量因类型而异:'列表是具有未知基类型的列表的类型。当您想要一个不关心参数的基本类型的函数时,它们就会发挥作用,例如对于长度函数,它是否计算 int 列表或 char 列表的长度并不重要。每当您看到一个类型变量时,您都可以将其解释为它代表任何类型...即,它有助于为多态函数提供类型。
标签: sml