
Functional-navigational programming in Clojure with Specter - krat0sprakhar
http://nathanmarz.com/blog/functional-navigational-programming-in-clojurescript-with-sp.html
======
houshuang
This is really interesting stuff - reminds me a lot of lenses in Haskell,
which the author points out, and also of state-trees in JS/compile-to-JS like
Om or Baobab. I have been playing with something similar in Elixir, but deeply
nested structures seem far less common there.

One thing I like is the concept that a function can operate on a single well-
defined data structure, without worrying about the fact that this structure is
part of a much larger state tree.

I wonder if there are things that a strongly typed implementation (Haskell)
can do, which this cannot do (as well)?

Also wondering at what point it becomes better to switch to an in-memory
database (like Datascript), instead of a simple nested data structure. I guess
transparency is a benefit of a single data structure, whereas things like
Datascript might be faster(?) and can also handle things like storing history
and building in undo-functionality etc (which you'd have to add manually
otherwise).

