Sml &引用;“不匹配的结构规格”;在函子定义中
我正在尝试学习在标准ML中使用Sml &引用;“不匹配的结构规格”;在函子定义中,sml,functor,Sml,Functor,我正在尝试学习在标准ML中使用函子。我已经编写了以下代码,但我不断收到错误错误:不匹配的结构规范:元素。谁能给我指出错误吗。我没能找到它: signature SET_ELEMENT = sig type element val equal: element -> element -> bool end signature SET = sig type set structure Element : SET_ELEMENT val empty:
函子。我已经编写了以下代码,但我不断收到错误错误:不匹配的结构规范:元素。谁能给我指出错误吗。我没能找到它:
signature SET_ELEMENT =
sig
type element
val equal: element -> element -> bool
end
signature SET =
sig
type set
structure Element : SET_ELEMENT
val empty: set
val member: Element.element -> set -> bool
end
functor Set (Element:SET_ELEMENT) :> SET =
struct
type element = Element.element
type set = element list
val empty = [];
fun member x [] = false
| member x (y::ys) = Element.equal x y orelse member x ys;
end
您在SET
的签名中声明了一个名为Element
的结构。但是,您没有在函子输出的结构中定义名为元素的结构
只需添加一行,声明它与functor的元素
输入相同:
functor Set (Element:SET_ELEMENT) :> SET =
struct
structure Element = Element
type element = Element.element
type set = element list
val empty = [];
fun member x [] = false
| member x (y::ys) = Element.equal x y orelse member x ys;
end