Sml 标准ML中的eqtype是什么?
在以下给定代码中,Sml 标准ML中的eqtype是什么?,sml,Sml,在以下给定代码中,eqtype是什么意思?我知道SML中存在一个type关键字,它可以让您为类型别名,但eqtype对我来说是新事物 signature SYMBOL = sig eqtype symbol val symbol : string -> symbol val name : symbol -> string type 'a table val empty : 'a table val enter : 'a table * symbol * 'a
eqtype
是什么意思?我知道SML中存在一个type
关键字,它可以让您为类型别名,但eqtype对我来说是新事物
signature SYMBOL =
sig
eqtype symbol
val symbol : string -> symbol
val name : symbol -> string
type 'a table
val empty : 'a table
val enter : 'a table * symbol * 'a -> 'a table
val look : 'a table * symbol -> 'a option
end
我试图在文档中找到解释,但找不到任何相关内容。有人能给我解释一下吗?谢谢
直观地说,
eqtype
让我们来声明一种类型,我们在创建此签名的结构时需要指定这种类型。一种定义了等式的类型。我是@L3viathan的初学者。请您解释一下定义平等是什么意思?要了解平等类型和非质量类型之间的区别,请评估1=1
与1.0=1.0
。int是相等类型。浮点数不是。这是否也意味着我不能将我的eqtype符号
设置为浮点数?请参阅real为何以这种方式工作。SML旨在证明正确的代码。检查real是否相等通常是一个bug(是堆栈溢出中重复最多的问题之一)。SML甚至不允许编译这样的bug。