Nathan Marz
Nathan Marz
The protocol path implementation currently only works in Clojure because it relies on `extend` and reified protocol objects, both of which are unavailable in ClojureScript
This is an idea for navigators which use state to make navigation decisions. Examples: ``` clojure (select [ALL (takenav 3)] [1 2 3 4 5]) ;; => [1 2 3]...
This would be a new operation like `select` and `transform`. For now this is just an idea to brainstorm and is related to the old idea https://github.com/nathanmarz/specter/issues/49 `find-paths` would find...
Should be able to navigate to the substructure of a sorted map, like to the first key/value pair, the first value, or to a submap within a range. Could potentially...
`transform` could run more efficiently by baking the `transform-fn` into the path. At the callsite, composition could work like this instead: ``` clojure (reduce (fn [curr tn] (fn [structure] (tn...
Instead of navigating to subsequences based on a simple predicate, could navigate based on `(fn [elem prev] ...)`. `prev` would be the result of running the function on the previous...
Many Specter navigators do not preserve metadata on transforms, such as `ALL`, `MAP-VALS`, and `MAP-KEYS`. Should look into the performance cost of metadata preservation and whether it's worth updating all...
It would be intuitive for a "sub map" to have the same properties as the parent map. Currently it uses `select-keys` which always returns an unsorted map. It should be...
The current strategy is naive and handles each element individually. There seems like there should be performance gains by considering all index changes at once when building the resulting sequence.