Sml &引用;“不匹配的结构规格”;在函子定义中

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:

我正在尝试学习在标准ML中使用
函子
。我已经编写了以下代码,但我不断收到错误
错误:不匹配的结构规范:元素
。谁能给我指出错误吗。我没能找到它:

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