繁体   English   中英

设置OCaml列表的类型

[英]Set Type of OCaml List

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

let listOfInts = [];

但这仅使listOfInts成为具有允许放入其中的任何类型的列表。 如何强制listOfInts仅是一个整数列表?

这是为了在OCaml中制作字典,该字典将字符串(键)映射为int(值)。 为简单起见,我只将值设为字符串的长度。 有人可以帮我这个忙吗? 提前致谢。

明确声明类型。

let (listOfInts : int list) = [];

在此处通过注释强制类型没有用:可以在任何类型上使用[] ,但是一旦使用它创建特定类型的元素列表,它将被实例化为正确的类型。

对于没有完全推断也不能广义化的具有可变状态的值类型,注释有时会很有用(例如ref [] )。

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

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

m类型为int StringMap.t

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM