Dictionary_mutable.S3val is_empty : (_, _, 'phantom) t -> boolWhether the dictionary is empty.
val length : (_, _, 'phantom) t -> intHow many key/value pairs the dictionary contains.
val to_alist : ('key, 'data, 'phantom) t -> ('key * 'data) listAll key/value pairs.
val keys : ('key, _, 'phantom) t -> 'key listAll keys in the dictionary, in the same order as to_alist.
val data : (_, 'data, 'phantom) t -> 'data listAll values in the dictionary, in the same order as to_alist.
val clear : (_, _, 'phantom) t -> unitRemoves all key/value pairs from the dictionary.
A new dictionary containing the same key/value pairs.
Whether key has a value.
Produces the current value, or absence thereof, for a given key.
Like find. Raises if there is no value for the given key.
val find_or_add :
(('key, 'data, 'phantom) t ->
'key ->
default:(unit -> 'data) ->
'data,
'key,
'data,
'phantom)
accessorLike find. Adds the value default () if none exists, then returns it.
val findi_or_add :
(('key, 'data, 'phantom) t ->
'key ->
default:('key -> 'data) ->
'data,
'key,
'data,
'phantom)
accessorLike find. Adds default key if no value exists.
val find_and_call :
(('key, 'data, 'phantom) t ->
'key ->
if_found:('data -> 'c) ->
if_not_found:('key -> 'c) ->
'c,
'key,
'data,
'phantom)
accessorLike find. Calls if_found data if a value exists, or if_not_found key otherwise. Avoids allocation Some.
val findi_and_call :
(('key, 'data, 'phantom) t ->
'key ->
if_found:(key:'key -> data:'data -> 'c) ->
if_not_found:('key -> 'c) ->
'c,
'key,
'data,
'phantom)
accessorLike findi. Calls if_found ~key ~data if a value exists.
val find_and_remove :
(('key, 'data, 'phantom) t -> 'key -> 'data option, 'key, 'data, 'phantom)
accessorLike find. Removes the value for key, if any, from the dictionary before returning it.
val add :
(('key, 'data, 'phantom) t ->
key:'key ->
data:'data ->
[ `Ok | `Duplicate ],
'key,
'data,
'phantom)
accessorAdds a key/value pair for a key the dictionary does not contain, or reports a duplicate.
val add_exn :
(('key, 'data, 'phantom) t ->
key:'key ->
data:'data ->
unit,
'key,
'data,
'phantom)
accessorLike add. Raises on duplicates.
val set :
(('key, 'data, 'phantom) t ->
key:'key ->
data:'data ->
unit,
'key,
'data,
'phantom)
accessorAdds or replaces a key/value pair in the dictionary.
Removes any value for the given key.
val change :
(('key, 'data, 'phantom) t ->
'key ->
f:('data option -> 'data option) ->
unit,
'key,
'data,
'phantom)
accessorAdds, replaces, or removes the value for a given key, depending on its current value or lack thereof.
val update :
(('key, 'data, 'phantom) t ->
'key ->
f:('data option -> 'data) ->
unit,
'key,
'data,
'phantom)
accessorAdds or replaces the value for a given key, depending on its current value or lack thereof.
val update_and_return :
('key, 'data, 'phantom) t ->
'key ->
f:('data option -> 'data) ->
'dataLike update. Returns the new value.
val incr :
(?by:int ->
?remove_if_zero:bool ->
('key, int, 'phantom) t ->
'key ->
unit,
'key,
'data,
'phantom)
accessorAdds by to the value for key, default 0 if key is absent. May remove key if the result is 0, depending on remove_if_zero.
val decr :
(?by:int ->
?remove_if_zero:bool ->
('key, int, 'phantom) t ->
'key ->
unit,
'key,
'data,
'phantom)
accessorSubtracts by from the value for key, default 0 if key is absent. May remove key if the result is 0, depending on remove_if_zero.
val add_multi :
(('key, 'data list, 'phantom) t ->
key:'key ->
data:'data ->
unit,
'key,
'data,
'phantom)
accessorAdds data to the existing key/value pair for key. Interprets a missing key as having an empty list.
Removes one element from the existing key/value pair for key. Removes the key entirely if the new list is empty.
val find_multi :
(('key, 'data list, 'phantom) t -> 'key -> 'data list, 'key, 'data, 'phantom)
accessorProduces the list associated with the corresponding key. Interprets a missing key as having an empty list.
val fold :
('key, 'data, 'phantom) t ->
init:'acc ->
f:(key:'key -> data:'data -> 'acc -> 'acc) ->
'accCombines every value in the dictionary.
val for_all : (_, 'data, 'phantom) t -> f:('data -> bool) -> boolWhether every value satisfies f.
val for_alli :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> bool) ->
boolLike for_all. The predicate may also depend on the associated key.
val exists : (_, 'data, 'phantom) t -> f:('data -> bool) -> boolWhether at least one value satisfies f.
val existsi :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> bool) ->
boolLike exists. The predicate may also depend on the associated key.
val count : (_, 'data, 'phantom) t -> f:('data -> bool) -> intHow many values satisfy f.
val counti :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> bool) ->
intLike count. The predicate may also depend on the associated key.
val choose : ('key, 'data, 'phantom) t -> ('key * 'data) optionArbitrary, deterministic key/value pair if non-empty.
val choose_exn : ('key, 'data, 'phantom) t -> 'key * 'dataLike choose. Raises if empty.
val choose_randomly :
?random_state:Random.State.t ->
('key, 'data, 'phantom) t ->
('key * 'data) optionArbitrary, pseudo-random key/value pair if non-empty.
val choose_randomly_exn :
?random_state:Random.State.t ->
('key, 'data, 'phantom) t ->
'key * 'dataLike choose_randomly. Raises if empty.
val iter_keys : ('key, _, 'phantom) t -> f:('key -> unit) -> unitCalls f for every key.
val iter : (_, 'data, 'phantom) t -> f:('data -> unit) -> unitCalls f for every value.
val iteri :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> unit) ->
unitCalls f for every key/value pair.
Transforms every value.
Like map. The transformation may also depend on the associated key.
val map_inplace : (_, 'data, 'phantom) t -> f:('data -> 'data) -> unitLike map. Modifies the input.
val mapi_inplace :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> 'data) ->
unitLike mapi. Modifies the input.
Produces only those key/value pairs whose key satisfies f.
Produces only those key/value pairs whose value satisfies f.
val filteri :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> bool) ->
('key, 'data, 'phantom) tProduces only those key/value pairs which satisfy f.
val filter_keys_inplace : ('key, _, 'phantom) t -> f:('key -> bool) -> unitLike filter_keys. Modifies the input.
val filter_inplace : (_, 'data, 'phantom) t -> f:('data -> bool) -> unitLike filter. Modifies the input.
val filteri_inplace :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> bool) ->
unitLike filteri. Modifies the input.
Produces key/value pairs for which f produces Some.
val filter_mapi :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> 'c option) ->
('key, 'c, 'phantom) tLike filter_map. The new value may also depend on the associated key.
val filter_map_inplace :
(_, 'data, 'phantom) t ->
f:('data -> 'data option) ->
unitLike filter_map. Modifies the input.
val filter_mapi_inplace :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> 'data option) ->
unitLike filter_mapi. Modifies the input.
val partition_tf :
('key, 'data, 'phantom) t ->
f:('data -> bool) ->
('key, 'data, 'phantom) t * ('key, 'data, 'phantom) tSplits one dictionary into two. The first contains key/value pairs for which the value satisfies f. The second contains the remainder.
val partitioni_tf :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> bool) ->
('key, 'data, 'phantom) t * ('key, 'data, 'phantom) tLike partition_tf. The predicate may also depend on the associated key.
val partition_map :
('key, 'data, 'phantom) t ->
f:('data -> ('c, 'd) Either.t) ->
('key, 'c, 'phantom) t * ('key, 'd, 'phantom) tSplits one dictionary into two, corresponding respectively to First _ and Second _ results from f.
val partition_mapi :
('key, 'data, 'phantom) t ->
f:(key:'key -> data:'data -> ('c, 'd) Either.t) ->
('key, 'c, 'phantom) t * ('key, 'd, 'phantom) tLike partition_map. The split may also depend on the associated key.
val merge :
(('key, 'data1, 'phantom) t ->
('key, 'data2, 'phantom) t ->
f:
(key:'key ->
[ `Left of 'data1 | `Right of 'data2 | `Both of 'data1 * 'data2 ] ->
'data3 option) ->
('key, 'data3, 'phantom) t,
'key,
'data3,
'phantom)
accessorMerges two dictionaries by fully traversing both. Not suitable for efficiently merging lists of dictionaries. See merge_into instead.
val merge_into :
(src:('key, 'data1, 'phantom) t ->
dst:('key, 'data2, 'phantom) t ->
f:(key:'key -> 'data1 -> 'data2 option -> 'data2 Merge_into_action.t) ->
unit,
'key,
'data,
'phantom)
accessorMerges two dictionaries by traversing src and adding to dst. Computes the effect on dst of each key/value pair in src using f.
Creates a new empty dictionary.
val of_alist :
(('key * 'data) list ->
[ `Ok of ('key, 'data, 'phantom) t | `Duplicate_key of 'key ],
'key,
'data,
'phantom)
creatorDictionary containing the given key/value pairs. Fails if there are duplicate keys.
val of_alist_report_all_dups :
(('key * 'data) list ->
[ `Ok of ('key, 'data, 'phantom) t | `Duplicate_keys of 'key list ],
'key,
'data,
'phantom)
creatorLike of_alist. On failure, provides all duplicate keys instead of a single representative.
val of_alist_or_error :
(('key * 'data) list ->
('key, 'data, 'phantom) t Or_error.t,
'key,
'data,
'phantom)
creatorLike of_alist. Returns a Result.t.
val of_alist_exn :
(('key * 'data) list -> ('key, 'data, 'phantom) t, 'key, 'data, 'phantom)
creatorLike of_alist. Raises on duplicates.
val of_alist_multi :
(('key * 'data) list ->
('key, 'data list, 'phantom) t,
'key,
'data list,
'phantom)
creatorProduces a dictionary mapping each key to a list of associated values.
val create_mapped :
(get_key:('a -> 'key) ->
get_data:('a -> 'data) ->
'a list ->
[ `Ok of ('key, 'data, 'phantom) t | `Duplicate_keys of 'key list ],
'key,
'data,
'phantom)
creatorLike of_alist. Consume a list of elements for which key/value pairs can be computed.
val create_with_key :
(get_key:('data -> 'key) ->
'data list ->
[ `Ok of ('key, 'data, 'phantom) t | `Duplicate_keys of 'key list ],
'key,
'data,
'phantom)
creatorLike of_alist. Consume values for which keys can be computed.
val create_with_key_or_error :
(get_key:('data -> 'key) ->
'data list ->
('key, 'data, 'phantom) t Or_error.t,
'key,
'data,
'phantom)
creatorLike of_alist_or_error. Consume values for which keys can be computed.