From 9b4f433eabdf241a88dd3e0c9554edf497917c79 Mon Sep 17 00:00:00 2001 From: DjebbZ Date: Sun, 11 Feb 2018 23:04:17 +0100 Subject: [PATCH 1/6] First draft of a cheatsheet --- Cheat-Sheet.md | 120 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 Cheat-Sheet.md diff --git a/Cheat-Sheet.md b/Cheat-Sheet.md new file mode 100644 index 0000000..231a241 --- /dev/null +++ b/Cheat-Sheet.md @@ -0,0 +1,120 @@ +# Cheat Sheet + +Most of Specter's API consists of an operation, a path and the data to operate on. + +## Operations + +There are 2 types of operations: queries and transforms. + +#### Query + +###### Multiple elements (return a vector of values found) + +`select`, `select-any` + +###### One element (return a single value) + +`select-first`, `select-one`, `select-one!` + +###### Query test + +`selected-any?` + +###### Transducer-related + +`traverse`, `traverse-all` + +#### Transform + +`transform`, `multi-transform`, `replace-in`, `setval` + +## Paths + +A path (often named `apath`) is a navigator or a vector of navigators. + +Navigator sometimes operates on specific data structures. + + +#### Maps + +`MAP-KEYS`, `MAP-VALS`, `keypath`, `map-key`, `submap` + +#### Sequences + +###### All values + +`ALL`, `ALL-WITH-META` + +###### Specific position + +`AFTER-ELEM`, `BEFORE-ELEM`, `BEGINNING`, `END`, `FIRST`, `LAST` + +###### Indexed + +`INDEXED-VALS`, `before-index`, `index-nav`, `nthpath`, `srange`, `srange-dynamic` + +###### Others + +`continuous-subseqs` + +#### Sets + +`NONE-ELEM`, `set-elem` + +#### Keywords/Symbols + +`NAME`, `NAMESPACE` + +#### Atoms + +#### Strings + +###### Specific position + +`BEGINNING`, `FIRST`, `END`, `LAST` + +##### Other + +`regex-nav`, `srange` + +#### Metadata + +`ALL-WITH-META`, `META` + +#### Views + +`NIL->LIST`, `NIL->SET`, `NIL->VECTOR`, `filterer`, `nil->val`, `subselect`, `transform`, `traversed`, `view` + +#### Value collection + +`VAL`, `collect`, `collect-one`, `collected?`, `putval`, `with-fresh-collected` + +#### Don't know yet + +`NONE`, `codewalker`, `each-nav`, `multi-path`, `must`, `parser`, `walker` + +#### Control + +`STAY`, `STOP`, `comp-path`, `cond-path`, `continue-then-stay`, `if-path`, `stay-the-continue` + +#### Filters + +`pred`, `pred=`, `pred<`, `pred>`, `pred<=`, `pred>=`, `not-selected?`, `selected?` + +#### Multi-transform + +`terminal`, `terminal-val` + +## Extending Specter + +#### Custom paths + +`declarepath`, `defprotocolpath`, `extend-protocolpath`, `path`, `providepath`, `recursive-path` + +#### Custom collectors + +`defcollector` + +#### Custom navigators + +`defdynamicnav`, `defnav`, `nav` From 0e651a1b048d82a87a3cc10333ab05ffeb7e833e Mon Sep 17 00:00:00 2001 From: DjebbZ Date: Mon, 12 Feb 2018 10:09:55 +0100 Subject: [PATCH 2/6] Simplify/fix cheatsheet categorization based on review --- Cheat-Sheet.md | 63 +++++++++++++++----------------------------------- 1 file changed, 18 insertions(+), 45 deletions(-) diff --git a/Cheat-Sheet.md b/Cheat-Sheet.md index 231a241..fc5184d 100644 --- a/Cheat-Sheet.md +++ b/Cheat-Sheet.md @@ -8,21 +8,7 @@ There are 2 types of operations: queries and transforms. #### Query -###### Multiple elements (return a vector of values found) - -`select`, `select-any` - -###### One element (return a single value) - -`select-first`, `select-one`, `select-one!` - -###### Query test - -`selected-any?` - -###### Transducer-related - -`traverse`, `traverse-all` +`select`, `select-any`, `select-first`, `select-one`, `select-one!`, `selected-any?`, `traverse-all` #### Transform @@ -34,32 +20,19 @@ A path (often named `apath`) is a navigator or a vector of navigators. Navigator sometimes operates on specific data structures. - #### Maps -`MAP-KEYS`, `MAP-VALS`, `keypath`, `map-key`, `submap` +`MAP-KEYS`, `MAP-VALS`, `keypath`, `map-key`, `submap`, `must` #### Sequences -###### All values +`ALL`, `ALL-WITH-META`, `AFTER-ELEM`, `BEFORE-ELEM`, `BEGINNING`, `END`, `FIRST`, `INDEXED-VALS`, `LAST` -`ALL`, `ALL-WITH-META` - -###### Specific position - -`AFTER-ELEM`, `BEFORE-ELEM`, `BEGINNING`, `END`, `FIRST`, `LAST` - -###### Indexed - -`INDEXED-VALS`, `before-index`, `index-nav`, `nthpath`, `srange`, `srange-dynamic` - -###### Others - -`continuous-subseqs` +`before-index`, `continuous-subseqs`, `filterer`, `index-nav`, `nthpath`, `srange`, `srange-dynamic` #### Sets -`NONE-ELEM`, `set-elem` +`NONE-ELEM`, `set-elem`, `subsets` #### Keywords/Symbols @@ -67,40 +40,40 @@ Navigator sometimes operates on specific data structures. #### Atoms +`ATOM` + #### Strings -###### Specific position - -`BEGINNING`, `FIRST`, `END`, `LAST` - -##### Other - -`regex-nav`, `srange` +`BEGINNING`, `FIRST`, `END`, `LAST`, `regex-nav`, `srange` #### Metadata -`ALL-WITH-META`, `META` +`ALL-WITH-META`, `META` #### Views -`NIL->LIST`, `NIL->SET`, `NIL->VECTOR`, `filterer`, `nil->val`, `subselect`, `transform`, `traversed`, `view` +`NIL->LIST`, `NIL->SET`, `NIL->VECTOR`, `nil->val`, `parser`, `subselect`, `transformed`, `traversed`, `view` #### Value collection -`VAL`, `collect`, `collect-one`, `collected?`, `putval`, `with-fresh-collected` +`DISPENSE`, `VAL`, `collect`, `collect-one`, `collected?`, `putval`, `with-fresh-collected` #### Don't know yet -`NONE`, `codewalker`, `each-nav`, `multi-path`, `must`, `parser`, `walker` +`traverse` #### Control -`STAY`, `STOP`, `comp-path`, `cond-path`, `continue-then-stay`, `if-path`, `stay-the-continue` +`STAY`, `STOP`, `comp-path`, `cond-path`, `continue-then-stay`, `if-path`, `multi-path`, `stay-the-continue` #### Filters `pred`, `pred=`, `pred<`, `pred>`, `pred<=`, `pred>=`, `not-selected?`, `selected?` +#### Walking + +`codewalker`, `walker` + #### Multi-transform `terminal`, `terminal-val` @@ -117,4 +90,4 @@ Navigator sometimes operates on specific data structures. #### Custom navigators -`defdynamicnav`, `defnav`, `nav` +`defdynamicnav`, `defnav`, `each-nav`, `nav` From 7dd2b9bd191bf09d3d1583acfad1b711f60c9122 Mon Sep 17 00:00:00 2001 From: DjebbZ Date: Mon, 12 Feb 2018 12:42:51 +0100 Subject: [PATCH 3/6] Add links; fix traverse; fix various typos in fn names and anchors --- Cheat-Sheet.md | 54 +++++++++++++++++++++++++------------------ List-of-Macros.md | 2 +- List-of-Navigators.md | 10 ++++---- 3 files changed, 37 insertions(+), 29 deletions(-) diff --git a/Cheat-Sheet.md b/Cheat-Sheet.md index fc5184d..8ce5aca 100644 --- a/Cheat-Sheet.md +++ b/Cheat-Sheet.md @@ -2,17 +2,29 @@ Most of Specter's API consists of an operation, a path and the data to operate on. +Generally usage is like this: + +``` +(Operation Path Data) +where +Operation: Query|Transform +Path: Navigator|Vector of Navigators +Data: User-provided data structure to operate on. +``` + +Refer to the specific API documentation to check usage. + ## Operations There are 2 types of operations: queries and transforms. #### Query -`select`, `select-any`, `select-first`, `select-one`, `select-one!`, `selected-any?`, `traverse-all` +[`select`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#select), [`select-any`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#select-any), [`select-first`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#select-first), [`select-one`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#select-one), [`select-one!`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#select-one-1), [`selected-any?`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#selected-any), [`traverse`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#traverse), [`traverse-all`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#traverse-all) #### Transform -`transform`, `multi-transform`, `replace-in`, `setval` +[`transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#transform), [`multi-transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#multi-transform), [`replace-in`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#replace-in), [`setval`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#setval) ## Paths @@ -22,72 +34,68 @@ Navigator sometimes operates on specific data structures. #### Maps -`MAP-KEYS`, `MAP-VALS`, `keypath`, `map-key`, `submap`, `must` +[`MAP-KEYS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-keys), [`MAP-VALS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-vals), [`keypath`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#keypath), [`map-key`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-key), [`submap`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#submap), [`must`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#must) #### Sequences -`ALL`, `ALL-WITH-META`, `AFTER-ELEM`, `BEFORE-ELEM`, `BEGINNING`, `END`, `FIRST`, `INDEXED-VALS`, `LAST` +[`ALL`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#all), [`ALL-WITH-META`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#all-with-meta), [`AFTER-ELEM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#after-elem), [`BEFORE-ELEM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#before-elem), [`BEGINNING`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#beginning), [`END`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#end), [`FIRST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#first), [`INDEXED-VALS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#indexed-vals), [`LAST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#last) -`before-index`, `continuous-subseqs`, `filterer`, `index-nav`, `nthpath`, `srange`, `srange-dynamic` +[`before-index`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#before-index), [`continuous-subseqs`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#continuous-subseqs), [`filterer`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#filterer), [`index-nav`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#index-nav), [`nthpath`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nthpath), [`srange`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#srange), [`srange-dynamic`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#srange-dynamic) #### Sets -`NONE-ELEM`, `set-elem`, `subsets` +[`NONE-ELEM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#none-elem), [`set-elem`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#set-elem), [`subset`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#subset) #### Keywords/Symbols -`NAME`, `NAMESPACE` +[`NAME`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#name), [`NAMESPACE`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#namespace) #### Atoms -`ATOM` +[`ATOM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#atom) #### Strings -`BEGINNING`, `FIRST`, `END`, `LAST`, `regex-nav`, `srange` +[`BEGINNING`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#beginning), [`END`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#end), [`FIRST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#first), [`LAST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#last), [`regex-nav`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#regex-nav), [`srange`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#srange) #### Metadata -`ALL-WITH-META`, `META` +[`ALL-WITH-META`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#all-with-meta), [`META`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#meta) #### Views -`NIL->LIST`, `NIL->SET`, `NIL->VECTOR`, `nil->val`, `parser`, `subselect`, `transformed`, `traversed`, `view` +[`NIL->LIST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-list), [`NIL->SET`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-set), [`NIL->VECTOR`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-vector), [`nil->val`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-val), [`parser`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#parser), [`subselect`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#subselect), [`transformed`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#transformed), [`traversed`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#traversed), [`view`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#view) #### Value collection -`DISPENSE`, `VAL`, `collect`, `collect-one`, `collected?`, `putval`, `with-fresh-collected` - -#### Don't know yet - -`traverse` +[`DISPENSE`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#dispense), [`VAL`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#val), [`collect`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#collect), [`collect-one`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#collect-one), [`collected?`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#collected), [`putval`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#putval), [`with-fresh-collected`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#with-fresh-collected) #### Control -`STAY`, `STOP`, `comp-path`, `cond-path`, `continue-then-stay`, `if-path`, `multi-path`, `stay-the-continue` +[`STAY`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stay), [`STOP`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stop), [`comp-paths`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#comp-paths), [`cond-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#cond-path), [`continue-then-stay`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#continue-then-stay), [`if-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#if-path), [`multi-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#multi-path), [`stay-then-continue`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stay-then-continue) #### Filters -`pred`, `pred=`, `pred<`, `pred>`, `pred<=`, `pred>=`, `not-selected?`, `selected?` +[`pred`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#pred), [`pred=`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#pred-1), [`pred<`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#pred-2), [`pred>`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#pred-3), [`pred<=`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#pred-4), [`pred>=`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#pred-5), [`not-selected?`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#not-selected), [`selected?`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#selected) #### Walking -`codewalker`, `walker` +[`codewalker`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#codewalker), [`walker`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#walker) #### Multi-transform -`terminal`, `terminal-val` +[`terminal`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#terminal), [`terminal-val`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#terminal-val) ## Extending Specter #### Custom paths -`declarepath`, `defprotocolpath`, `extend-protocolpath`, `path`, `providepath`, `recursive-path` +[`declarepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#declarepath), [`defprotocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defprotocolpath), [`extend-protocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#extend-protocolpath), [`path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#path), [`providepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#providepath), [`recursive-path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#recursive-path) #### Custom collectors -`defcollector` +[`defcollector`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defcollector) #### Custom navigators -`defdynamicnav`, `defnav`, `each-nav`, `nav` +[`defdynamicnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defdynamicnav), [`defnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defnav), [`eachnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#eachnav), [`nav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#nav) diff --git a/List-of-Macros.md b/List-of-Macros.md index b47b669..3c8ce37 100644 --- a/List-of-Macros.md +++ b/List-of-Macros.md @@ -10,7 +10,7 @@ - [selected-any?](#selected-any) - [select-first](#select-first) - [select-one](#select-one) - - [select-one!](#select-one) + - [select-one!](#select-one-1) - [setval](#setval) - [transform](#transform) - [traverse](#traverse) diff --git a/List-of-Navigators.md b/List-of-Navigators.md index b6b77d0..1660bdc 100644 --- a/List-of-Navigators.md +++ b/List-of-Navigators.md @@ -61,11 +61,11 @@ It is a convention in Specter that unparameterized navigators are capitalized, w - [nthpath](#nthpath) - [parser](#parser) - [pred](#pred) - - [pred=](#pred=) - - [pred<](#pred<) - - [pred<=](#pred<=) - - [pred>](#pred>) - - [pred>=](#pred>=) + - [pred=](#pred-1) + - [pred<](#pred-2) + - [pred<=](#pred-3) + - [pred>](#pred-4) + - [pred>=](#pred-5) - [putval](#putval) - [not-selected?](#not-selected) - [regex-nav](#regex-nav) From 64b1ae4ef6b23a8efcccd73b6eeb00fb5a4183fd Mon Sep 17 00:00:00 2001 From: DjebbZ Date: Mon, 12 Feb 2018 14:59:00 +0100 Subject: [PATCH 4/6] Add links to `compiled` operations --- Cheat-Sheet.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Cheat-Sheet.md b/Cheat-Sheet.md index 8ce5aca..85c5019 100644 --- a/Cheat-Sheet.md +++ b/Cheat-Sheet.md @@ -16,7 +16,7 @@ Refer to the specific API documentation to check usage. ## Operations -There are 2 types of operations: queries and transforms. +There are 2 types of operations: queries and transforms. Most of them have a compiled version that uses precompiled paths. #### Query @@ -26,6 +26,10 @@ There are 2 types of operations: queries and transforms. [`transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#transform), [`multi-transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#multi-transform), [`replace-in`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#replace-in), [`setval`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#setval) +#### Compiled + +[`compiled-select`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-any`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-first`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-one`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-one!`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-selected-any?`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-setval`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-transform`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-traverse`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-traverse-all`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-) + ## Paths A path (often named `apath`) is a navigator or a vector of navigators. From c3611b0f5d8dfcb31c2d1bc664c8e443f47bf456 Mon Sep 17 00:00:00 2001 From: DjebbZ Date: Mon, 12 Feb 2018 16:43:39 +0100 Subject: [PATCH 5/6] Fixes after review: remove compiled, add missing and other stuff --- Cheat-Sheet.md | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/Cheat-Sheet.md b/Cheat-Sheet.md index 85c5019..0c48788 100644 --- a/Cheat-Sheet.md +++ b/Cheat-Sheet.md @@ -16,7 +16,7 @@ Refer to the specific API documentation to check usage. ## Operations -There are 2 types of operations: queries and transforms. Most of them have a compiled version that uses precompiled paths. +There are 2 types of operations: queries and transforms. #### Query @@ -24,11 +24,7 @@ There are 2 types of operations: queries and transforms. Most of them have a com #### Transform -[`transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#transform), [`multi-transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#multi-transform), [`replace-in`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#replace-in), [`setval`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#setval) - -#### Compiled - -[`compiled-select`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-any`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-first`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-one`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-select-one!`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-selected-any?`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-setval`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-transform`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-traverse`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-), [`compiled-traverse-all`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#compiled-) +[`transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#transform), [`multi-transform`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#multi-transform), [`replace-in`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#replace-in), [`setval`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#setval), `vtransform` ## Paths @@ -38,17 +34,17 @@ Navigator sometimes operates on specific data structures. #### Maps -[`MAP-KEYS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-keys), [`MAP-VALS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-vals), [`keypath`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#keypath), [`map-key`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-key), [`submap`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#submap), [`must`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#must) +[`MAP-KEYS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-keys), [`MAP-VALS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-vals), `compact`, [`keypath`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#keypath), [`map-key`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#map-key), [`submap`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#submap), [`must`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#must) #### Sequences [`ALL`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#all), [`ALL-WITH-META`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#all-with-meta), [`AFTER-ELEM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#after-elem), [`BEFORE-ELEM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#before-elem), [`BEGINNING`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#beginning), [`END`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#end), [`FIRST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#first), [`INDEXED-VALS`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#indexed-vals), [`LAST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#last) -[`before-index`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#before-index), [`continuous-subseqs`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#continuous-subseqs), [`filterer`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#filterer), [`index-nav`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#index-nav), [`nthpath`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nthpath), [`srange`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#srange), [`srange-dynamic`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#srange-dynamic) +[`before-index`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#before-index), `compact`, [`continuous-subseqs`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#continuous-subseqs), [`filterer`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#filterer), [`index-nav`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#index-nav), [`nthpath`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nthpath), [`srange`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#srange), [`srange-dynamic`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#srange-dynamic) #### Sets -[`NONE-ELEM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#none-elem), [`set-elem`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#set-elem), [`subset`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#subset) +[`NONE-ELEM`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#none-elem), `compact`, [`set-elem`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#set-elem), [`subset`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#subset) #### Keywords/Symbols @@ -68,7 +64,7 @@ Navigator sometimes operates on specific data structures. #### Views -[`NIL->LIST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-list), [`NIL->SET`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-set), [`NIL->VECTOR`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-vector), [`nil->val`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-val), [`parser`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#parser), [`subselect`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#subselect), [`transformed`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#transformed), [`traversed`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#traversed), [`view`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#view) +[`NIL->LIST`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-list), [`NIL->SET`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-set), [`NIL->VECTOR`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-vector), [`nil->val`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#nil-val), [`parser`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#parser), [`transformed`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#transformed), [`traversed`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#traversed), [`view`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#view) #### Value collection @@ -76,7 +72,7 @@ Navigator sometimes operates on specific data structures. #### Control -[`STAY`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stay), [`STOP`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stop), [`comp-paths`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#comp-paths), [`cond-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#cond-path), [`continue-then-stay`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#continue-then-stay), [`if-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#if-path), [`multi-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#multi-path), [`stay-then-continue`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stay-then-continue) +[`STAY`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stay), [`STOP`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stop), [`cond-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#cond-path), [`continue-then-stay`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#continue-then-stay), [`if-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#if-path), [`multi-path`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#multi-path), [`stay-then-continue`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#stay-then-continue), [`subselect`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#subselect) #### Filters @@ -88,18 +84,8 @@ Navigator sometimes operates on specific data structures. #### Multi-transform -[`terminal`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#terminal), [`terminal-val`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#terminal-val) +[`terminal`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#terminal), [`terminal-val`](https://github.com/nathanmarz/specter/wiki/List-of-Navigators#terminal-val), `vterminal` -## Extending Specter +## Custom navigators -#### Custom paths - -[`declarepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#declarepath), [`defprotocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defprotocolpath), [`extend-protocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#extend-protocolpath), [`path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#path), [`providepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#providepath), [`recursive-path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#recursive-path) - -#### Custom collectors - -[`defcollector`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defcollector) - -#### Custom navigators - -[`defdynamicnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defdynamicnav), [`defnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defnav), [`eachnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#eachnav), [`nav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#nav) +[`declarepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#declarepath), [`defprotocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defprotocolpath), [`extend-protocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#extend-protocolpath), [`path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#path), [`providepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#providepath), [`recursive-path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#recursive-path), [`defcollector`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defcollector), [`defdynamicnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defdynamicnav), [`defnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defnav), [`eachnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#eachnav), [`nav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#nav) From d36ad03f093df86fa949792821925df3141fc2cf Mon Sep 17 00:00:00 2001 From: DjebbZ Date: Mon, 12 Feb 2018 19:38:44 +0100 Subject: [PATCH 6/6] Add missing `local-declarepath` --- Cheat-Sheet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cheat-Sheet.md b/Cheat-Sheet.md index 0c48788..2ba927d 100644 --- a/Cheat-Sheet.md +++ b/Cheat-Sheet.md @@ -88,4 +88,4 @@ Navigator sometimes operates on specific data structures. ## Custom navigators -[`declarepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#declarepath), [`defprotocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defprotocolpath), [`extend-protocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#extend-protocolpath), [`path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#path), [`providepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#providepath), [`recursive-path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#recursive-path), [`defcollector`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defcollector), [`defdynamicnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defdynamicnav), [`defnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defnav), [`eachnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#eachnav), [`nav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#nav) +[`declarepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#declarepath), [`defprotocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defprotocolpath), [`extend-protocolpath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#extend-protocolpath), `local-declarepath`, [`path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#path), [`providepath`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#providepath), [`recursive-path`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#recursive-path), [`defcollector`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defcollector), [`defdynamicnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defdynamicnav), [`defnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#defnav), [`eachnav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#eachnav), [`nav`](https://github.com/nathanmarz/specter/wiki/List-of-Macros#nav)