我需要一个带有int类型键的OCaml映射,所以我使用Map.Make创建一个.然而,似乎标准模块 "仅"提供需要转换的Big_int,Int32,Int64和Nativeint等模块.所以我必须做的事情如下:
module IntMap = Map.Make(Int32)
let a_map = IntMap.add (Int32.of_int 0) "zero" IntMap.empty ;;
Run Code Online (Sandbox Code Playgroud)
...我宁愿避免或定义我自己的愚蠢的Int模块确实处理简单的int文字或值而不需要转换函数:
module Int = struct
type t = int
let compare x y = if x < y then -1 else if x > y then 1 else 0 end ;;
module IntMap = Map.Make(Int)
let a_map = IntMap.add 0 "zero" IntMap.empty ;;
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗?
Tho*_*mas 27
拥有int映射的最简单方法是执行以下操作:
module IntMap = Map.Make(struct type t = int let compare = compare end)
Run Code Online (Sandbox Code Playgroud)