modify method

IHashMap<K, V> modify(
  1. K k,
  2. V f(
    1. V v
    ),
  3. V dflt
)

Implementation

IHashMap<K, V> modify(K k, V f(V v), V dflt) => new IHashMap.internal(_map.modify(k.hashCode,
    (existing) => existing
        .find((kv) => kv.value1 == k)
        .fold(() => cons(tuple2(k, dflt), existing), (_) => existing.map((kv) => kv.value1 == k ? tuple2(kv.value1, f(kv.value2)) : kv)),
    new Cons(tuple2(k, dflt), nil())));