1

我定义了一些类型如下:

module SMap = Map.Make(String)

type s = 
  { t: int
    fa: int list } 

type t = s SMap.t

我想为对应的元素编写一个函数modify添加100到列表中。以下代码有效:fakey

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)

但是,删除和添加元素对我来说似乎是多余的......有谁能告诉我是否有更好的方法来直接修改它?

4

1 回答 1

2

是的,你可以添加它。

一个映射只能包含一次键,因此如果您使用此键添加另一个映射,它将删除前一个映射。

http://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.Make.html#VALadd

于 2013-07-25T17:04:02.663 回答