Results 29 issues of 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

enhancement

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...

Navigates to `[collected-vals navigated-value]`

enhancement

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...

enhancement

`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...

enhancement

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...

enhancement

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...

enhancement

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...

enhancement

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.

enhancement