2017-03-05 68 views

回答

1

有一个在OCaml的标准地图库没有这样的功能。您可以实现单个地图模块版本(即单密钥类型)是这样的:

module M = Map.Make(String) 

let find_with_default dflt map key = 
    try M.find map key with Not_found -> dflt 
+1

您还可以通过扩展函子有一个通用的定义:'模块MyMap中(O:Map.OrderedType) = struct include Map.Make(O)let find_with_default dflt map key =尝试使用Not_found查找映射键 - > dflt end' – Virgile