我在官方文档中找不到任何size
或len
函数。查找地图中元素数量的简单方法是什么:
module M = Map.Make(String)
我正在寻找类似M.size M.empty : 0
的东西.
你要找的函数称为cardinal
(如集合的基数(。
例:
module M = Map.Make(String)
let m = M.singleton "x" "y"
let () = Printf.printf "%dn" (M.cardinal m)
这将打印1
,因为只有一个绑定。
hoogle4ocaml ": 'a t -> int$" | grep -i map
会告诉你:
~/.opam/4.05.0/lib/ocaml/map.mli: val cardinal: 'a t -> int
参看 https://github.com/UnixJunkie/hoogle_for_ocaml
所以,简短的回答是:
Map.cadinal your_map
PS:是的,OCaml社区仍然非常缺少Haskell社区中的Hoogle。周围有一些黑客,就像我刚刚链接的那个,但我们需要一个严肃的,正常工作,积极维护并在很大程度上由社区审查