【发布时间】:2015-06-08 07:25:52
【问题描述】:
我在 sml 中遇到以下问题:
我想使用IntListSet 签名创建一个集合,但我想使用large int 而不是int。
有没有办法解决这个问题?
谢谢, 等待你的答复 .
【问题讨论】:
-
如果答案能帮助您解决问题,请不要忘记将答案标记为已接受。
我在 sml 中遇到以下问题:
我想使用IntListSet 签名创建一个集合,但我想使用large int 而不是int。
有没有办法解决这个问题?
谢谢, 等待你的答复 .
【问题讨论】:
您可以使用ListSetFn 函子。从文档中,您会发现:
functor ListSetFn (ORD_KEY) : ORD_SET
这表示ListSetFn 是一个函子,它采用满足ORD_KEY 签名的结构,您可以在文档中找到:
type ord_key
val compare : (ord_key * ord_key) -> order
所以基本上,你需要创建一个满足ORD_KEY签名的结构,比如:
structure LargeIntKey : ORD_KEY =
struct
type ord_key = LargeInt.int
val compare = LargeInt.compare
end
然后您可以通过以下方式创建ListSetFn 仿函数的LargeInt 实例:
structure LargeIntSet = ListSetFn(LargeIntKey)
【讨论】: