Hyperlinkv0.8.0-beta.28

Trie

Trie.modifyconsteffect/Trie.ts:882
<V>(key: string, f: (v: V) => V): (self: Trie<V>) => Trie<V>
<V>(self: Trie<V>, key: string, f: (v: V) => V): Trie<V>

Updates the value of the specified key within the Trie if it exists.

Example (Modifying an existing value)

import { Equal, Option, Trie } from "effect"
import * as assert from "node:assert"

const trie = Trie.empty<number>().pipe(
  Trie.insert("shells", 0),
  Trie.insert("sells", 1),
  Trie.insert("she", 2)
)

assert.deepStrictEqual(
  trie.pipe(Trie.modify("she", (v) => v + 10), Trie.get("she")),
  Option.some(12)
)

assert.equal(Equal.equals(trie.pipe(Trie.modify("me", (v) => v)), trie), true)
mutations
Source effect/Trie.ts:8824 lines
export const modify: {
  <V>(key: string, f: (v: V) => V): (self: Trie<V>) => Trie<V>
  <V>(self: Trie<V>, key: string, f: (v: V) => V): Trie<V>
} = TR.modify