sml 中的大型 Int 集

Large Int Set in sml

我在 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)