4 ms·
My goal isn't to look _exactly_ like C++/etc, but rather to have a fairly natural duality between read and write. You can read with: a.b.c.d but a write i
by pbiggar 6y ago
My goal isn't to look _exactly_ like C++/etc, but rather to have a fairly natural duality between read and write. You can read with:
a.b.c.d
but a write is:
let a = {a with b = { a.b with c = { a.b.c with d = 5 } } } }
which is much much more verbose than the OO/imperative:
a.b.c.d = 5
- kqr 6y agoYeah, lenses let you do a & b.c.d .~ 5 To construct a new version of `a` where those nested fields have the new value 5. Or for an in-place update in a context where that is allowed, a.b.c.d .= 5 The lens concept is incredibly nice.