|
|
|
|
|
by jcparkyn
142 days ago
|
|
This is similar but not quite the same as persistent data structures. In particular: - We can avoid quite a few allocations in loops by mutating lists/dicts in place if we hold an exclusive reference (and after the first mutation, we always will). Updates to persistent data structures are relatively cheap, but they're a lot more expensive than an in-place update. - Herd has syntax sugar for directly modifying nested values inside lists/dicts. E.g. `set foo.bar.[0].baz = 1;`. In practice, is this faster than a different implementation of the same semantics using persistent data structures and a tracing GC? That will depend on your program. |
|