如何在ocaml中找到`map`的大小?我使用`Map.Make`仿函数来创建模块?

时间:2017-08-17 19:15:13

标签: ocaml

我在官方文档中找不到任何sizelen函数。查找使用以下内容创建的地图中元素数量的简单方法是什么:

module M = Map.Make(String)

我正在寻找类似M.size M.empty : 0的内容。

2 个答案:

答案 0 :(得分:8)

您正在寻找的功能称为cardinal(与集合的基数相同)。

示例:

module M = Map.Make(String)

let m = M.singleton "x" "y"
let () = Printf.printf "%d\n" (M.cardinal m)

这将打印1,因为只有一个绑定。

答案 1 :(得分:-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的东西。周围有一些黑客,就像我刚刚联系到的那样,但是我们需要一个严肃的,正确的工作,积极维护并且在很大程度上被社区审查