我已经定义了以下几种类型:
module SMap = Map.Make(String)
type s =
{ t: int
fa: int list }
type t = s SMap.t
我想编写一个函数modify
,将100
添加到列表fa
中,以获取与key
对应的元素。以下代码有效:
let modify (key: String) (x: t) =
let a = SMap.find key x in
SMap.add key { a with fa = a.fa @ [100] } (SMap.remove key x)
然而,删除和添加元素对我来说似乎是多余的...可以告诉我是否有更好的方法来直接修改它?
答案 0 :(得分:2)
是的,您可以添加它。
地图只能包含一次密钥,因此如果您使用此密钥添加另一个映射,则会删除之前的密钥。
http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.Make.html#VALadd