首页 文章

大型Int设置为sml

提问于
浏览
3

我在 sml 中遇到以下问题:我想使用 IntListSet 签名创建一个集合,而不是 int 我想使用 large int . 有没有什么办法解决这一问题?

谢谢,等待你的回答 .

1 回答

  • 3

    您可以使用 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)
    

相关问题