我需要一个带有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 ;;
...我宁愿避免或定义我自己的愚蠢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 ;;
我在这里遗漏了一些明显的东西吗?