diff options
| author | Emilio Jesus Gallego Arias | 2018-09-27 22:04:28 +0200 |
|---|---|---|
| committer | Emilio Jesus Gallego Arias | 2018-10-03 13:52:04 +0200 |
| commit | e11068aa90f6e7fc728d4583998cd99cfa850211 (patch) | |
| tree | 98998fecef98931fea26e5de7d2156c4a6711d42 /clib/cArray.ml | |
| parent | f19d24a462d50c701a3882de2c16180bb739e622 (diff) | |
[pretyper] Remove imperative passing of evar_map.
Diffstat (limited to 'clib/cArray.ml')
| -rw-r--r-- | clib/cArray.ml | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clib/cArray.ml b/clib/cArray.ml index d509c55b9a..b9dcfd61d1 100644 --- a/clib/cArray.ml +++ b/clib/cArray.ml @@ -63,6 +63,7 @@ sig val fold_left_map : ('a -> 'b -> 'a * 'c) -> 'a -> 'b array -> 'a * 'c array val fold_right_map : ('a -> 'c -> 'b * 'c) -> 'a array -> 'c -> 'b array * 'c val fold_left2_map : ('a -> 'b -> 'c -> 'a * 'd) -> 'a -> 'b array -> 'c array -> 'a * 'd array + val fold_left2_map_i : (int -> 'a -> 'b -> 'c -> 'a * 'd) -> 'a -> 'b array -> 'c array -> 'a * 'd array val fold_right2_map : ('a -> 'b -> 'c -> 'd * 'c) -> 'a array -> 'b array -> 'c -> 'd array * 'c val fold_map : ('a -> 'b -> 'a * 'c) -> 'a -> 'b array -> 'a * 'c array [@@ocaml.deprecated "Same as [fold_left_map]"] @@ -451,6 +452,11 @@ let fold_left2_map f e v1 v2 = let v' = map2 (fun x1 x2 -> let (e,y) = f !e' x1 x2 in e' := e; y) v1 v2 in (!e',v') +let fold_left2_map_i f e v1 v2 = + let e' = ref e in + let v' = map2_i (fun idx x1 x2 -> let (e,y) = f idx !e' x1 x2 in e' := e; y) v1 v2 in + (!e',v') + let distinct v = let visited = Hashtbl.create 23 in try |
