Nathan Marz
Nathan Marz
Interesting idea, but we're just going to keep this library simple for now.
This is definitely possible for `select-any`, since it doesn't have any mutable state to deal with like the other `select` operations. This is a big win for static paths. With...
Ran some benchmarks by doing this form of compilation manually and the improvement for `(select-any [:a :b :c] data)` would be at most 30%.
Since sequences of `keypath` / `nthpath` with `select-any` is the only known use case which is a good ways from optimal performance, another possibility is for the inline compiler to...
Another possibility would be for navigators to be able to provide inline code to use for selection or transformation if the full path is known statically. This would be a...
Another optimization possibility is removing no-ops for specific operations. For instance, `terminal` operations are no-ops on select path and could be removed, triggering other removals as well. If one branch...
Another possibility to consider rather than `find-paths` are versions of `select` and `transform` that also compute element-specific paths as they go – `select-with-paths` and `transform-with-paths`.
CLJS has been quite a moving target, so it's not surprising when warnings appear that didn't appear before. I'm not familiar with shadow-cljs so I don't know if that can...
Further ideas: @aengelberg brought up the idea of stateful navigators that reset in the middle of a path. Seems like a natural use case this feature should support. Here's one...
@Pancia Likely Specter would have to leverage that or do something similar. I looked at the Clojure code and it's up to the reduce function on the collection to detect...