【问题标题】:Set Type of OCaml List设置 OCaml 列表的类型
【发布时间】:2012-06-15 05:56:14
【问题描述】:

我想将列表的类型设置为整数,但我不知道如何执行此操作。 我可以做到以下几点:

let listOfInts = [];

但这只是让 listOfInts 成为一个允许放入任何类型的列表。 如何强制 listOfInts 只是一个整数列表?

这是为了在 OCaml 中创建一个字典,将字符串(键)映射到 int(值)。 为简单起见,我只是将值设为字符串的长度。 有人可以帮我解决这个问题吗?提前致谢。

【问题讨论】:

    标签: list ocaml


    【解决方案1】:

    明确声明类型。

    let (listOfInts : int list) = [];
    

    【讨论】:

      【解决方案2】:

      在这里通过注释强制类型没有用:您可以在任何类型上使用[],但是一旦您使用它来创建特定类型的元素列表,它将被实例化到右侧输入。

      注释有时对于具有可变状态且既不能完全推断也不能概括的值类型很有用(例如ref [])。

      我不明白这与您在字符串和整数之间建立映射的更广泛问题有何关系,因为这根本不涉及列表。如果你想要一个可变映射,你可以使用Hasthbl,否则使用Map

      module StringMap = Map.Make(String)
      let m = StringMap.add "foo" 3 StringMap.empty
      

      m 的类型为 int StringMap.t

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-28
        • 1970-01-01
        相关资源
        最近更新 更多