在我的ml程序中,我使用嵌套结构来构造我的代码。我正在定义这些结构的签名 - 但我真的不能让签名嵌套。
示例:
structure Example =
struct
structure Code =
struct
datatype mytype = Mycons of string
end
end
为此,我想做这样的事情:
signature EXAMPLE =
sig
signature CODE = (* or stucture Code - doesn't matter *)
sig
datatype mytype
end
end
现在这不起作用;我得到语法错误。我的问题:
答案 0 :(得分:3)
具有嵌套结构时签名中的语法需要一些习惯。
当尝试指定签名时,如果签名中的结构是这样的
signature JSON =
sig
type t
.. some signature stuff
structure Converter : sig
type json
type 'a t
... Converter specification stuff
... using type json as the parent signatures type t
end where type json = t
end
有关此示例的简单示例,请参阅这些Hoffman [.sml] [.sig]文件,并查看树[.sig]文件以获取更复杂的示例。< / p>
请记住,您需要在结构中提及您的签名规范,否则首先签名将毫无意义。