无效的数据类型函数
Invalid datatype function
函数getElement 不起作用。我认为问题出在购物车类型定义上,但我不知道为什么。
datatype element = FIRE | LAND | WATER
datatype pokemon = PIKACHU | CHARMANDER | BULBASUR
datatype power = int
type cart = pokemon*power*element
val newcart = (BULBASUR, 34, WATER)
fun getElement (c: cart) = (#3)c
val element = getElement newcart
问题是你这样写的:
datatype power = int
但显然你想要的是这个:
type power = int
datatype power = int
的问题在于它声明了一个新类型 power
,它只有一个构造函数,写成“int
”,恰好拼写方式与类型的名称 int
。例如,对于您的原始代码,值 (BULBASUR, int, WATER)
的类型为 cart
,而 (BULBASUR, 34, WATER)
则没有。
当您将其固定为 type power = int
时,值 (BULBASUR, 34, WATER)
的类型将是 cart
.
函数getElement 不起作用。我认为问题出在购物车类型定义上,但我不知道为什么。
datatype element = FIRE | LAND | WATER
datatype pokemon = PIKACHU | CHARMANDER | BULBASUR
datatype power = int
type cart = pokemon*power*element
val newcart = (BULBASUR, 34, WATER)
fun getElement (c: cart) = (#3)c
val element = getElement newcart
问题是你这样写的:
datatype power = int
但显然你想要的是这个:
type power = int
datatype power = int
的问题在于它声明了一个新类型 power
,它只有一个构造函数,写成“int
”,恰好拼写方式与类型的名称 int
。例如,对于您的原始代码,值 (BULBASUR, int, WATER)
的类型为 cart
,而 (BULBASUR, 34, WATER)
则没有。
当您将其固定为 type power = int
时,值 (BULBASUR, 34, WATER)
的类型将是 cart
.