then append that value.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L779">view source</a></div></div><divclass="public anchor"id="var-ALL"><h3>ALL</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to every element of the collection. For maps navigates to
a vector of `[key value]`.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L640">view source</a></div></div><divclass="public anchor"id="var-ATOM"><h3>ATOM</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to atom value.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L909">view source</a></div></div><divclass="public anchor"id="var-BEFORE-ELEM"><h3>BEFORE-ELEM</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to 'void' element before the sequence.
then prepend that value.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L764">view source</a></div></div><divclass="public anchor"id="var-BEGINNING"><h3>BEGINNING</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the empty subsequence before the first element of the collection.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L722">view source</a></div></div><divclass="public anchor"id="var-codewalker"><h3>codewalker</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Like `walker` but maintains metadata of any forms traversed.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L835">view source</a></div></div><divclass="public anchor"id="var-collect"><h3>collect</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Adds the result of running select with the given path on the
current value to the collected vals.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1078">view source</a></div></div><divclass="public anchor"id="var-collect-one"><h3>collect-one</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Adds the result of running select-one with the given path on the
current value to the collected vals.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1088">view source</a></div></div><divclass="public anchor"id="var-collected.3F"><h3>collected?</h3><h4class="type">macro</h4><divclass="usage"><code>(collected? params & body)</code></div><divclass="doc"><preclass="plaintext">Creates a filter function navigator that takes in all the collected values
to capture all the collected values as a single vector.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L381">view source</a></div></div><divclass="public anchor"id="var-collector"><h3>collector</h3><h4class="type">macro</h4><divclass="usage"><code>(collector params [_ [_ structure-sym] & body])</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L58">view source</a></div></div><divclass="public anchor"id="var-comp-paths"><h3>comp-paths</h3><divclass="usage"><code>(comp-paths & apath)</code></div><divclass="doc"><preclass="plaintext">Returns a compiled version of the given path for use with
compiled-{select/transform/setval/etc.} functions.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L454">view source</a></div></div><divclass="public anchor"id="var-compiled-multi-transform"><h3>compiled-multi-transform</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of `multi-transform` that takes in a path precompiled with `comp-paths`
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L547">view source</a></div></div><divclass="public anchor"id="var-compiled-replace-in"><h3>compiled-replace-in</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of replace-in that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L568">view source</a></div></div><divclass="public anchor"id="var-compiled-select"><h3>compiled-select</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of select that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L462">view source</a></div></div><divclass="public anchor"id="var-compiled-select-any"><h3>compiled-select-any</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of select-any that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L496">view source</a></div></div><divclass="public anchor"id="var-compiled-select-first"><h3>compiled-select-first</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of select-first that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L487">view source</a></div></div><divclass="public anchor"id="var-compiled-select-one"><h3>compiled-select-one</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of select-one that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L471">view source</a></div></div><divclass="public anchor"id="var-compiled-select-one.21"><h3>compiled-select-one!</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of select-one! that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L479">view source</a></div></div><divclass="public anchor"id="var-compiled-selected-any.3F"><h3>compiled-selected-any?</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of selected-any? that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L509">view source</a></div></div><divclass="public anchor"id="var-compiled-setval"><h3>compiled-setval</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of setval that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L560">view source</a></div></div><divclass="public anchor"id="var-compiled-transform"><h3>compiled-transform</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of transform that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L538">view source</a></div></div><divclass="public anchor"id="var-compiled-traverse"><h3>compiled-traverse</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of traverse that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L519">view source</a></div></div><divclass="public anchor"id="var-compiled-traverse-all"><h3>compiled-traverse-all</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Version of traverse-all that takes in a path precompiled with comp-paths
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L528">view source</a></div></div><divclass="public anchor"id="var-cond-path"><h3>cond-path</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Takes in alternating cond-path path cond-path path...
were declared.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1180">view source</a></div></div><divclass="public anchor"id="var-continue-then-stay"><h3>continue-then-stay</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the provided path and then to the current element. This can be used
to implement post-order traversal.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1229">view source</a></div></div><divclass="public anchor"id="var-continuous-subseqs"><h3>continuous-subseqs</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to every continuous subsequence of elements matching `pred`
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L711">view source</a></div></div><divclass="public anchor"id="var-declarepath"><h3>declarepath</h3><h4class="type">macro</h4><divclass="usage"><code>(declarepath name)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L92">view source</a></div></div><divclass="public anchor"id="var-defcollector"><h3>defcollector</h3><h4class="type">macro</h4><divclass="usage"><code>(defcollector name & body)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L65">view source</a></div></div><divclass="public anchor"id="var-defdynamicnav"><h3>defdynamicnav</h3><h4class="type">macro</h4><divclass="usage"><code>(defdynamicnav name & args)</code></div><divclass="doc"><preclass="plaintext">Defines a function that can choose what navigator to use at runtime based on
an illustrative example of dynamic navs.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L138">view source</a></div></div><divclass="public anchor"id="var-defmacroalias"><h3>defmacroalias</h3><h4class="type">macro</h4><divclass="usage"><code>(defmacroalias name target)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L48">view source</a></div></div><divclass="public anchor"id="var-defnav"><h3>defnav</h3><h4class="type">macro</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L55">view source</a></div></div><divclass="public anchor"id="var-defprotocolpath"><h3>defprotocolpath</h3><h4class="type">macro</h4><divclass="usage"><code>(defprotocolpath name)</code><code>(defprotocolpath name params)</code></div><divclass="doc"><preclass="plaintext">Defines a navigator that chooses the path to take based on the type
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L397">view source</a></div></div><divclass="public anchor"id="var-defrichnav"><h3>defrichnav</h3><h4class="type">macro</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L56">view source</a></div></div><divclass="public anchor"id="var-DISPENSE"><h3>DISPENSE</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Drops all collected values for subsequent navigation.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1126">view source</a></div></div><divclass="public anchor"id="var-dynamic-param.3F"><h3>dynamic-param?</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L583">view source</a></div></div><divclass="public anchor"id="var-dynamicnav"><h3>dynamicnav</h3><h4class="type">macro</h4><divclass="usage"><code>(dynamicnav & args)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L135">view source</a></div></div><divclass="public anchor"id="var-eachnav"><h3>eachnav</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Turns a navigator that takes one argument into a navigator that takes
is no performance cost to using this. See implementation of `keypath`</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L587">view source</a></div></div><divclass="public anchor"id="var-END"><h3>END</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the empty subsequence after the last element of the collection.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L735">view source</a></div></div><divclass="public anchor"id="var-extend-protocolpath"><h3>extend-protocolpath</h3><h4class="type">macro</h4><divclass="usage"><code>(extend-protocolpath protpath & extensions)</code></div><divclass="doc"><preclass="plaintext">Used in conjunction with `defprotocolpath`. See [[defprotocolpath]].
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L443">view source</a></div></div><divclass="public anchor"id="var-extend-protocolpath*"><h3>extend-protocolpath*</h3><divclass="usage"><code>(extend-protocolpath* protpath-prot extensions)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L436">view source</a></div></div><divclass="public anchor"id="var-filterer"><h3>filterer</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to a view of the current sequence that only contains elements that
on that element with the path yields anything other than an empty sequence.
For transformation: `NONE` entries in the result sequence cause corresponding entries in
input to be removed. A result sequence smaller than the input sequence is equivalent to
padding the result sequence with `NONE` at the end until the same size as the input.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L958">view source</a></div></div><divclass="public anchor"id="var-FIRST"><h3>FIRST</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the first element of the collection. If the collection is
empty navigation is stopped at this point.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L683">view source</a></div></div><divclass="public anchor"id="var-if-path"><h3>if-path</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Like cond-path, but with if semantics.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1135">view source</a></div></div><divclass="public anchor"id="var-keypath"><h3>keypath</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the specified keys one after another. If navigate to NONE,
that element is removed from the map or vector.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L871">view source</a></div></div><divclass="public anchor"id="var-LAST"><h3>LAST</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the last element of the collection. If the collection is
empty navigation is stopped at this point.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L677">view source</a></div></div><divclass="public anchor"id="var-late-bound-collector"><h3>late-bound-collector</h3><h4class="type">macro</h4><divclass="usage"><code>(late-bound-collector bindings impl)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L82">view source</a></div></div><divclass="public anchor"id="var-late-bound-nav"><h3>late-bound-nav</h3><h4class="type">macro</h4><divclass="usage"><code>(late-bound-nav bindings & impls)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L79">view source</a></div></div><divclass="public anchor"id="var-late-bound-richnav"><h3>late-bound-richnav</h3><h4class="type">macro</h4><divclass="usage"><code>(late-bound-richnav bindings & impls)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L85">view source</a></div></div><divclass="public anchor"id="var-late-path"><h3>late-path</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L582">view source</a></div></div><divclass="public anchor"id="var-late-resolved-fn"><h3>late-resolved-fn</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L584">view source</a></div></div><divclass="public anchor"id="var-local-declarepath"><h3>local-declarepath</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L600">view source</a></div></div><divclass="public anchor"id="var-MAP-KEYS"><h3>MAP-KEYS</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to each key of the map. This is more efficient than
navigating via [ALL FIRST]</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L661">view source</a></div></div><divclass="public anchor"id="var-MAP-VALS"><h3>MAP-VALS</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to each value of the map. This is more efficient than
navigating via [ALL LAST]</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L650">view source</a></div></div><divclass="public anchor"id="var-META"><h3>META</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the metadata of the structure, or nil if
the structure has no metadata or may not contain metadata.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1043">view source</a></div></div><divclass="public anchor"id="var-multi-path"><h3>multi-path</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">A path that branches on multiple paths. For updates,
applies updates to the paths in order.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1199">view source</a></div></div><divclass="public anchor"id="var-multi-transform"><h3>multi-transform</h3><h4class="type">macro</h4><divclass="usage"><code>(multi-transform apath structure)</code></div><divclass="doc"><preclass="plaintext">Just like `transform` but expects transform functions to be specified
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L343">view source</a></div></div><divclass="public anchor"id="var-multi-transform*"><h3>multi-transform*</h3><divclass="usage"><code>(multi-transform* path structure)</code></div><divclass="doc"><preclass="plaintext">Just like `transform` but expects transform functions to be specified
the `multi-transform` equivalent of `setval`.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L551">view source</a></div></div><divclass="public anchor"id="var-must"><h3>must</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the specified keys one after another, only if they exist
from the map or vector.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L876">view source</a></div></div><divclass="public anchor"id="var-NAME"><h3>NAME</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the name portion of the keyword or symbol
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1052">view source</a></div></div><divclass="public anchor"id="var-NAMESPACE"><h3>NAMESPACE</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the namespace portion of the keyword or symbol
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1065">view source</a></div></div><divclass="public anchor"id="var-nav"><h3>nav</h3><h4class="type">macro</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L54">view source</a></div></div><divclass="public anchor"id="var-NIL-.3ELIST"><h3>NIL->LIST</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to '() if the value is nil. Otherwise it stays
navigated at the current value.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1031">view source</a></div></div><divclass="public anchor"id="var-NIL-.3ESET"><h3>NIL->SET</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to #{} if the value is nil. Otherwise it stays
navigated at the current value.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1025">view source</a></div></div><divclass="public anchor"id="var-nil-.3Eval"><h3>nil->val</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the provided val if the structure is nil. Otherwise it stays
navigated at the structure.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1015">view source</a></div></div><divclass="public anchor"id="var-NIL-.3EVECTOR"><h3>NIL->VECTOR</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to [] if the value is nil. Otherwise it stays
navigated at the current value.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1037">view source</a></div></div><divclass="public anchor"id="var-NONE"><h3>NONE</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Global value used to indicate no elements selected during
[[select-any]].</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L499">view source</a></div></div><divclass="public anchor"id="var-NONE-ELEM"><h3>NONE-ELEM</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to 'void' elem in the set.
then add that value to the set.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L747">view source</a></div></div><divclass="public anchor"id="var-not-selected.3F"><h3>not-selected?</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L941">view source</a></div></div><divclass="public anchor"id="var-nthpath"><h3>nthpath</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the specified indices one after another.If navigate to
NONE, that element is removed from the sequence.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L882">view source</a></div></div><divclass="public anchor"id="var-parser"><h3>parser</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigate to the result of running `parse-fn` on the value. For
it to get the final value at this point.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L897">view source</a></div></div><divclass="public anchor"id="var-path"><h3>path</h3><h4class="type">macro</h4><divclass="usage"><code>(path & path)</code></div><divclass="doc"><preclass="plaintext">Same as calling comp-paths, except it caches the composition of the static parts
select/transform/setval/replace-in/etc. macros.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L220">view source</a></div></div><divclass="public anchor"id="var-pred"><h3>pred</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Keeps the element only if it matches the supplied predicate. This is the
late-bound parameterized version of using a function directly in a path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L992">view source</a></div></div><divclass="public anchor"id="var-providepath"><h3>providepath</h3><h4class="type">macro</h4><divclass="usage"><code>(providepath name apath)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L95">view source</a></div></div><divclass="public anchor"id="var-putval"><h3>putval</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Adds an external value to the collected vals. Useful when additional arguments
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L371">view source</a></div></div><divclass="public anchor"id="var-replace-in*"><h3>replace-in*</h3><divclass="usage"><code>(replace-in* path transform-fn structure & {:keys [merge-fn], :or {merge-fn concat}})</code></div><divclass="doc"><preclass="plaintext">Similar to transform, except returns a pair of [transformed-structure sequence-of-user-ret].
of what was transformed in the data structure.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L571">view source</a></div></div><divclass="public anchor"id="var-richnav"><h3>richnav</h3><h4class="type">macro</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L53">view source</a></div></div><divclass="public anchor"id="var-satisfies-protpath.3F"><h3>satisfies-protpath?</h3><h4class="type">macro</h4><divclass="usage"><code>(satisfies-protpath? protpath o)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L433">view source</a></div></div><divclass="public anchor"id="var-select"><h3>select</h3><h4class="type">macro</h4><divclass="usage"><code>(select apath structure)</code></div><divclass="doc"><preclass="plaintext">Navigates to and returns a sequence of all the elements specified by the path.
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L299">view source</a></div></div><divclass="public anchor"id="var-select*"><h3>select*</h3><divclass="usage"><code>(select* path structure)</code></div><divclass="doc"><preclass="plaintext">Navigates to and returns a sequence of all the elements specified by the path.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L465">view source</a></div></div><divclass="public anchor"id="var-select-any"><h3>select-any</h3><h4class="type">macro</h4><divclass="usage"><code>(select-any apath structure)</code></div><divclass="doc"><preclass="plaintext">Returns any element found or [[NONE]] if nothing selected. This is the most
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L323">view source</a></div></div><divclass="public anchor"id="var-select-any*"><h3>select-any*</h3><divclass="usage"><code>(select-any* path structure)</code></div><divclass="doc"><preclass="plaintext">Returns any element found or [[NONE]] if nothing selected. This is the most
efficient of the various selection operations.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L503">view source</a></div></div><divclass="public anchor"id="var-select-first"><h3>select-first</h3><h4class="type">macro</h4><divclass="usage"><code>(select-first apath structure)</code></div><divclass="doc"><preclass="plaintext">Returns first element found.
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L317">view source</a></div></div><divclass="public anchor"id="var-select-first*"><h3>select-first*</h3><divclass="usage"><code>(select-first* path structure)</code></div><divclass="doc"><preclass="plaintext">Returns first element found.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L491">view source</a></div></div><divclass="public anchor"id="var-select-one"><h3>select-one</h3><h4class="type">macro</h4><divclass="usage"><code>(select-one apath structure)</code></div><divclass="doc"><preclass="plaintext">Like select, but returns either one element or nil. Throws exception if multiple elements found.
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L311">view source</a></div></div><divclass="public anchor"id="var-select-one.21"><h3>select-one!</h3><h4class="type">macro</h4><divclass="usage"><code>(select-one! apath structure)</code></div><divclass="doc"><preclass="plaintext">Returns exactly one element, throws exception if zero or multiple elements found.
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L305">view source</a></div></div><divclass="public anchor"id="var-select-one.21*"><h3>select-one!*</h3><divclass="usage"><code>(select-one!* path structure)</code></div><divclass="doc"><preclass="plaintext">Returns exactly one element, throws exception if zero or multiple elements found
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L482">view source</a></div></div><divclass="public anchor"id="var-select-one*"><h3>select-one*</h3><divclass="usage"><code>(select-one* path structure)</code></div><divclass="doc"><preclass="plaintext">Like select, but returns either one element or nil. Throws exception if multiple elements found
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L474">view source</a></div></div><divclass="public anchor"id="var-selected-any.3F"><h3>selected-any?</h3><h4class="type">macro</h4><divclass="usage"><code>(selected-any? apath structure)</code></div><divclass="doc"><preclass="plaintext">Returns true if any element was selected, false otherwise.
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L330">view source</a></div></div><divclass="public anchor"id="var-selected-any.3F*"><h3>selected-any?*</h3><divclass="usage"><code>(selected-any?* path structure)</code></div><divclass="doc"><preclass="plaintext">Returns true if any element was selected, false otherwise.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L512">view source</a></div></div><divclass="public anchor"id="var-selected.3F"><h3>selected?</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Filters the current value based on whether a path finds anything.
even number exists for the :vals key.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L920">view source</a></div></div><divclass="public anchor"id="var-setval"><h3>setval</h3><h4class="type">macro</h4><divclass="usage"><code>(setval apath aval structure)</code></div><divclass="doc"><preclass="plaintext">Navigates to each value specified by the path and replaces it by `aval`.
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L353">view source</a></div></div><divclass="public anchor"id="var-setval*"><h3>setval*</h3><divclass="usage"><code>(setval* path val structure)</code></div><divclass="doc"><preclass="plaintext">Navigates to each value specified by the path and replaces it by val
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L563">view source</a></div></div><divclass="public anchor"id="var-srange"><h3>srange</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the subsequence bound by the indexes start (inclusive)
and end (exclusive)</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L700">view source</a></div></div><divclass="public anchor"id="var-srange-dynamic"><h3>srange-dynamic</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Uses start-fn and end-fn to determine the bounds of the subsequence
to select when navigating. Each function takes in the structure as input.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L689">view source</a></div></div><divclass="public anchor"id="var-STAY"><h3>STAY</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Stays navigated at the current point. Essentially a no-op navigator.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L616">view source</a></div></div><divclass="public anchor"id="var-stay-then-continue"><h3>stay-then-continue</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the current element and then navigates via the provided path.
This can be used to implement pre-order traversal.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1223">view source</a></div></div><divclass="public anchor"id="var-STOP"><h3>STOP</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Stops navigation at this point. For selection returns nothing and for
transformation returns the structure unchanged</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L604">view source</a></div></div><divclass="public anchor"id="var-submap"><h3>submap</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the specified submap (using select-keys).
value of the submap.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L810">view source</a></div></div><divclass="public anchor"id="var-subselect"><h3>subselect</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to a sequence that contains the results of (select ...),
If transformed sequence is smaller than input sequence, missing entries
will be filled in with NONE, triggering removal if supported by that navigator.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L844">view source</a></div></div><divclass="public anchor"id="var-subset"><h3>subset</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to the specified subset (by taking an intersection).
new value of the subset.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L794">view source</a></div></div><divclass="public anchor"id="var-terminal"><h3>terminal</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">For usage with `multi-transform`, defines an endpoint in the navigation
given as the first arguments</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L621">view source</a></div></div><divclass="public anchor"id="var-terminal-val"><h3>terminal-val</h3><divclass="usage"><code>(terminal-val v)</code></div><divclass="doc"><preclass="plaintext">Like `terminal` but specifies a val to set at the location regardless of
the collected values or the value at the location.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L634">view source</a></div></div><divclass="public anchor"id="var-transform"><h3>transform</h3><h4class="type">macro</h4><divclass="usage"><code>(transform apath transform-fn structure)</code></div><divclass="doc"><preclass="plaintext">Navigates to each value specified by the path and replaces it by the result of running
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L336">view source</a></div></div><divclass="public anchor"id="var-transform*"><h3>transform*</h3><divclass="usage"><code>(transform* path transform-fn structure)</code></div><divclass="doc"><preclass="plaintext">Navigates to each value specified by the path and replaces it by the result of running
the transform-fn on it</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L541">view source</a></div></div><divclass="public anchor"id="var-transformed"><h3>transformed</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to a view of the current value by transforming it with the
specified path and update-fn.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L969">view source</a></div></div><divclass="public anchor"id="var-traverse"><h3>traverse</h3><h4class="type">macro</h4><divclass="usage"><code>(traverse apath structure)</code></div><divclass="doc"><preclass="plaintext">Return a reducible object that traverses over `structure` to every element
This macro will do inline caching of the path.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L359">view source</a></div></div><divclass="public anchor"id="var-traverse*"><h3>traverse*</h3><divclass="usage"><code>(traverse* apath structure)</code></div><divclass="doc"><preclass="plaintext">Return a reducible object that traverses over `structure` to every element
specified by the path</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L522">view source</a></div></div><divclass="public anchor"id="var-traverse-all"><h3>traverse-all</h3><h4class="type">macro</h4><divclass="usage"><code>(traverse-all apath)</code></div><divclass="doc"><preclass="plaintext">Returns a transducer that traverses over each element with the given path.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L366">view source</a></div></div><divclass="public anchor"id="var-traverse-all*"><h3>traverse-all*</h3><divclass="usage"><code>(traverse-all* apath)</code></div><divclass="doc"><preclass="plaintext">Returns a transducer that traverses over each element with the given path.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L531">view source</a></div></div><divclass="public anchor"id="var-traversed"><h3>traversed</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to a view of the current value by transforming with a reduction over
the specified traversal.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L980">view source</a></div></div><divclass="public anchor"id="var-VAL"><h3>VAL</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L673">view source</a></div></div><divclass="public anchor"id="var-view"><h3>view</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Navigates to result of running `afn` on the currently navigated value.
</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L887">view source</a></div></div><divclass="public anchor"id="var-walker"><h3>walker</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Using clojure.walk, navigate the data structure until reaching
a value for which `afn` returns truthy.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L825">view source</a></div></div><divclass="public anchor"id="var-with-fresh-collected"><h3>with-fresh-collected</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext">Continues navigating on the given path with the collected vals reset to []. Once
to what they were before.</pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L1111">view source</a></div></div><divclass="public anchor"id="var-with-inline-debug"><h3>with-inline-debug</h3><h4class="type">macro</h4><divclass="usage"><code>(with-inline-debug & body)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L88">view source</a></div></div><divclass="public anchor"id="var-wrap-dynamic-nav"><h3>wrap-dynamic-nav</h3><divclass="usage"><code>(wrap-dynamic-nav f)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/nathanmarz/specter/tree/1.0.2-SNAPSHOT/src/clj/com/rpl/specter.cljc#L32">view source</a></div></div></div></body></html>