I think I'm confused.
filterer
navigates to a sequence of all "locations" in the sequence matching the predicate
with index 0 being the first location, index 1 being the second, and so on
transformations to the sequence navigated to by filterer
can only affect those locations
increasing the size of the sequence just causes indexes past the last location to be ignored
there's a special case for when you reduce the size of the sequence to set the removed locations to NONE
Hmmmm, OK. So, there is no 'obvious / out of the box' way to insert? Using a combo of index-vals
and before-index
works fine, is that the 'right way' to do this?
zipper navigators are good for this use case
com.rpl.specter.zipper
user=> (setval [z/VECTOR-ZIP (z/find-first #(= "b" %)) z/INNER-LEFT] [77] ["a" "b" "c"])
["a" 77 "b" "c"]
😮
Presumably that is much more efficient as well?
unclear
zippers do have overhead
the com.rpl.specter.zipper
namespace is not totally fleshed out, so there are other navigators that could be added to make it more efficient
such as the zipper equivalent of before-index
instead of doing INNER-LEFT
Hi All, i have a question. Why when use this symbol ’[?e :a true] inside a select nav its resolve to [?e :a G__161070]? ex: (select [ALL (pred #(= (log/spy %) (log/spy '[?e true])))] ['[?e true]])
return [].