4 ms·
There are a number of patterns that have arisen over the years to deal with these problems. For the large-object problem, look into persistent data structures o
by isaacimagine 5y ago
There are a number of patterns that have arisen over the years to deal with these problems. For the large-object problem, look into persistent data structures or the 'Functional but in Place' paradigm (compiler optimizes modification on a copied unshared array to a mutation).
For the parent-child problem, typed handles, continuation-based state propagation, and reifying state updates for a declarative interpreter may be used.
Monads and effects are common in strongly typed functional languages, but have less bearing on lisp, which usually embraces dynamism to some extent.