[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dash c026c46 073/316: Merge pull request #240 from basi
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dash c026c46 073/316: Merge pull request #240 from basil-conto/239 |
Date: |
Mon, 15 Feb 2021 15:57:28 -0500 (EST) |
branch: externals/dash
commit c026c46527686edeee94fbb7da5a42afcadbc6bd
Merge: dcb0ec1 0273913
Author: Magnar Sveen <magnars@gmail.com>
Commit: GitHub <noreply@github.com>
Merge pull request #240 from basil-conto/239
Replace -first with -some in -any?
---
README.md | 75 ++++++++--
dash.el | 2 +-
dash.info | 439 +++++++++++++++++++++++++++++++-------------------------
dash.texi | 117 ++++++++++++---
dev/examples.el | 6 +
5 files changed, 414 insertions(+), 225 deletions(-)
diff --git a/README.md b/README.md
index 6f5a856..d9dc937 100644
--- a/README.md
+++ b/README.md
@@ -179,6 +179,10 @@ Functions partitioning the input list into a list of lists.
* [-partition-all-in-steps](#-partition-all-in-steps-n-step-list) `(n step
list)`
* [-partition-by](#-partition-by-fn-list) `(fn list)`
* [-partition-by-header](#-partition-by-header-fn-list) `(fn list)`
+* [-partition-after-pred](#-partition-after-pred-pred-list) `(pred list)`
+* [-partition-before-pred](#-partition-before-pred-pred-list) `(pred list)`
+* [-partition-before-item](#-partition-before-item-item-list) `(item list)`
+* [-partition-after-item](#-partition-after-item-item-list) `(item list)`
* [-group-by](#-group-by-fn-list) `(fn list)`
### Indexing
@@ -372,7 +376,7 @@ See also: [`-map-when`](#-map-when-pred-rep-list),
[`-replace-last`](#-replace-l
Return a new list consisting of the result of (`fn` index item) for each item
in `list`.
-In the anaphoric form `--map-indexed`, the index is exposed as `it-index`.
+In the anaphoric form `--map-indexed`, the index is exposed as symbol
`it-index`.
See also: [`-each-indexed`](#-each-indexed-list-fn).
@@ -655,7 +659,7 @@ See also:
[`-select-columns`](#-select-columns-columns-table), [`-select-by-indi
## List to list
-Bag of various functions which modify input list.
+Functions returning a modified copy of the input list.
#### -keep `(fn list)`
@@ -828,7 +832,7 @@ item, etc. If `list` contains no items, return
`initial-value` and
`fn` is not called.
In the anaphoric form `--reduce-from`, the accumulated value is
-exposed as `acc`.
+exposed as symbol `acc`.
See also: [`-reduce`](#-reduce-fn-list), [`-reduce-r`](#-reduce-r-fn-list)
@@ -864,7 +868,7 @@ reduce return the result of calling `fn` with no arguments.
If
`list` has only 1 item, it is returned and `fn` is not called.
In the anaphoric form `--reduce`, the accumulated value is
-exposed as `acc`.
+exposed as symbol `acc`.
See also: [`-reduce-from`](#-reduce-from-fn-initial-value-list),
[`-reduce-r`](#-reduce-r-fn-list)
@@ -1025,7 +1029,7 @@ Alias: `-any-p`, `-some?`, `-some-p`
```el
(-any? 'even? '(1 2 3)) ;; => t
(-any? 'even? '(1 3 5)) ;; => nil
-(--any? (= 0 (% it 2)) '(1 2 3)) ;; => t
+(-any? 'null '(1 3 5)) ;; => nil
```
#### -all? `(pred list)`
@@ -1269,6 +1273,46 @@ other value (the body).
(-partition-by-header 'even? '(2 1 1 1 4 1 3 5 6 6 1)) ;; => '((2 1 1 1) (4 1
3 5) (6 6 1))
```
+#### -partition-after-pred `(pred list)`
+
+Partition directly after each time `pred` is true on an element of `list`.
+
+```el
+(-partition-after-pred (function oddp) '()) ;; => '()
+(-partition-after-pred (function oddp) '(1)) ;; => '((1))
+(-partition-after-pred (function oddp) '(0 1)) ;; => '((0 1))
+```
+
+#### -partition-before-pred `(pred list)`
+
+Partition directly before each time `pred` is true on an element of `list`.
+
+```el
+(-partition-before-pred (function oddp) '()) ;; => '()
+(-partition-before-pred (function oddp) '(1)) ;; => '((1))
+(-partition-before-pred (function oddp) '(0 1)) ;; => '((0) (1))
+```
+
+#### -partition-before-item `(item list)`
+
+Partition directly before each time `item` appears in `list`.
+
+```el
+(-partition-before-item 3 '()) ;; => '()
+(-partition-before-item 3 '(1)) ;; => '((1))
+(-partition-before-item 3 '(3)) ;; => '((3))
+```
+
+#### -partition-after-item `(item list)`
+
+Partition directly after each time `item` appears in `list`.
+
+```el
+(-partition-after-item 3 '()) ;; => '()
+(-partition-after-item 3 '(1)) ;; => '((1))
+(-partition-after-item 3 '(3)) ;; => '((3))
+```
+
#### -group-by `(fn list)`
Separate `list` into an alist whose keys are `fn` applied to the
@@ -1526,8 +1570,8 @@ function is applied pairwise taking as first argument
element of
`list1` and as second argument element of `list2` at corresponding
position.
-The anaphoric form `--zip-with` binds the elements from `list1` as `it`,
-and the elements from `list2` as `other`.
+The anaphoric form `--zip-with` binds the elements from `list1` as symbol `it`,
+and the elements from `list2` as symbol `other`.
```el
(-zip-with '+ '(1 2 3) '(4 5 6)) ;; => '(5 7 9)
@@ -1657,7 +1701,7 @@ Alias: `-find`
```el
(-first 'even? '(1 2 3)) ;; => 2
(-first 'even? '(1 3 5)) ;; => nil
-(--first (> it 2) '(1 2 3)) ;; => 3
+(-first 'null '(1 3 5)) ;; => nil
```
#### -some `(pred list)`
@@ -1668,8 +1712,8 @@ Alias: `-any`
```el
(-some 'even? '(1 2 3)) ;; => t
-(--some (member 'foo it) '((foo bar) (baz))) ;; => '(foo bar)
-(--some (plist-get it :bar) '((:foo 1 :bar 2) (:baz 3))) ;; => 2
+(-some 'null '(1 2 3)) ;; => nil
+(-some 'null '(1 2 nil)) ;; => t
```
#### -last `(pred list)`
@@ -1911,7 +1955,7 @@ last item in second form, etc.
Starting with the value of `x`, thread each expression through `forms`.
-Insert `x` at the position signified by the token `it` in the first
+Insert `x` at the position signified by the symbol `it` in the first
form. If there are more forms, insert the first form at the position
signified by `it` in in second form, etc.
@@ -1976,10 +2020,11 @@ Convenient versions of `let` and `let*` constructs
combined with flow control.
#### -when-let `(var-val &rest body)`
If `val` evaluates to non-nil, bind it to `var` and execute body.
-`var-val` should be a (`var` `val`) pair.
Note: binding is done according to [`-let`](#-let-varlist-rest-body).
+(fn (`var` `val`) &rest `body`)
+
```el
(-when-let (match-index (string-match "d" "abcd")) (+ match-index 2)) ;; => 5
(-when-let ((&plist :foo foo) (list :foo "foo")) foo) ;; => "foo"
@@ -2004,10 +2049,12 @@ encountered.
#### -if-let `(var-val then &rest else)`
If `val` evaluates to non-nil, bind it to `var` and do `then`,
-otherwise do `else`. `var-val` should be a (`var` `val`) pair.
+otherwise do `else`.
Note: binding is done according to [`-let`](#-let-varlist-rest-body).
+(fn (`var` `val`) `then` &rest `else`)
+
```el
(-if-let (match-index (string-match "d" "abc")) (+ match-index 3) 7) ;; => 7
(--if-let (even? 4) it nil) ;; => t
@@ -2237,7 +2284,7 @@ Return nil, used for side-effects only.
Call (`fn` index item) for each item in `list`.
-In the anaphoric form `--each-indexed`, the index is exposed as `it-index`.
+In the anaphoric form `--each-indexed`, the index is exposed as symbol
`it-index`.
See also: [`-map-indexed`](#-map-indexed-fn-list).
diff --git a/dash.el b/dash.el
index 9d30c6a..4942772 100644
--- a/dash.el
+++ b/dash.el
@@ -629,7 +629,7 @@ Alias: `-any'"
(defmacro --any? (form list)
"Anaphoric form of `-any?'."
(declare (debug (form form)))
- `(---truthy? (--first ,form ,list)))
+ `(---truthy? (--some ,form ,list)))
(defun -any? (pred list)
"Return t if (PRED x) is non-nil for any x in LIST, else nil.
diff --git a/dash.info b/dash.info
index ed4cd66..b8e95df 100644
--- a/dash.info
+++ b/dash.info
@@ -1,4 +1,4 @@
-This is dash.info, produced by makeinfo version 6.1 from dash.texi.
+This is dash.info, produced by makeinfo version 6.5 from dash.texi.
This manual is for ‘dash.el’ version 2.12.1.
@@ -253,7 +253,7 @@ The results are collected in order and returned as new list.
each item in LIST.
In the anaphoric form ‘--map-indexed’, the index is exposed as
- ‘it-index‘.
+ symbol ‘it-index’.
See also: ‘-each-indexed’ (*note -each-indexed::).
@@ -726,7 +726,7 @@ Functions reducing lists into single value.
not called.
In the anaphoric form ‘--reduce-from’, the accumulated value is
- exposed as ‘acc‘.
+ exposed as symbol ‘acc’.
See also: ‘-reduce’ (*note -reduce::), ‘-reduce-r’ (*note
-reduce-r::)
@@ -765,7 +765,7 @@ Functions reducing lists into single value.
LIST has only 1 item, it is returned and FN is not called.
In the anaphoric form ‘--reduce’, the accumulated value is
- exposed as ‘acc‘.
+ exposed as symbol ‘acc’.
See also: ‘-reduce-from’ (*note -reduce-from::), ‘-reduce-r’
(*note -reduce-r::)
@@ -935,8 +935,8 @@ File: dash.info, Node: Predicates, Next: Partitioning,
Prev: Unfolding, Up:
⇒ t
(-any? 'even? '(1 3 5))
⇒ nil
- (--any? (= 0 (% it 2)) '(1 2 3))
- ⇒ t
+ (-any? 'null '(1 3 5))
+ ⇒ nil
-- Function: -all? (pred list)
Return t if (PRED x) is non-nil for all x in LIST, else nil.
@@ -1189,6 +1189,48 @@ Functions partitioning the input list into a list of
lists.
(-partition-by-header 'even? '(2 1 1 1 4 1 3 5 6 6 1))
⇒ '((2 1 1 1) (4 1 3 5) (6 6 1))
+ -- Function: -partition-after-pred (pred list)
+ Partition directly after each time PRED is true on an element of
+ LIST.
+
+ (-partition-after-pred (function oddp) '())
+ ⇒ '()
+ (-partition-after-pred (function oddp) '(1))
+ ⇒ '((1))
+ (-partition-after-pred (function oddp) '(0 1))
+ ⇒ '((0 1))
+
+ -- Function: -partition-before-pred (pred list)
+ Partition directly before each time PRED is true on an element of
+ LIST.
+
+ (-partition-before-pred (function oddp) '())
+ ⇒ '()
+ (-partition-before-pred (function oddp) '(1))
+ ⇒ '((1))
+ (-partition-before-pred (function oddp) '(0 1))
+ ⇒ '((0) (1))
+
+ -- Function: -partition-before-item (item list)
+ Partition directly before each time ITEM appears in LIST.
+
+ (-partition-before-item 3 '())
+ ⇒ '()
+ (-partition-before-item 3 '(1))
+ ⇒ '((1))
+ (-partition-before-item 3 '(3))
+ ⇒ '((3))
+
+ -- Function: -partition-after-item (item list)
+ Partition directly after each time ITEM appears in LIST.
+
+ (-partition-after-item 3 '())
+ ⇒ '()
+ (-partition-after-item 3 '(1))
+ ⇒ '((1))
+ (-partition-after-item 3 '(3))
+ ⇒ '((3))
+
-- Function: -group-by (fn list)
Separate LIST into an alist whose keys are FN applied to the
elements of LIST. Keys are compared by ‘equal’.
@@ -1449,7 +1491,7 @@ Other list functions not fit to be classified elsewhere.
position.
The anaphoric form ‘--zip-with’ binds the elements from LIST1 as
- ‘it‘, and the elements from LIST2 as ‘other‘.
+ symbol ‘it’, and the elements from LIST2 as symbol ‘other’.
(-zip-with '+ '(1 2 3) '(4 5 6))
⇒ '(5 7 9)
@@ -1581,8 +1623,8 @@ Other list functions not fit to be classified elsewhere.
⇒ 2
(-first 'even? '(1 3 5))
⇒ nil
- (--first (> it 2) '(1 2 3))
- ⇒ 3
+ (-first 'null '(1 3 5))
+ ⇒ nil
-- Function: -some (pred list)
Return (PRED x) for the first LIST item where (PRED x) is
@@ -1592,10 +1634,10 @@ Other list functions not fit to be classified elsewhere.
(-some 'even? '(1 2 3))
⇒ t
- (--some (member 'foo it) '((foo bar) (baz)))
- ⇒ '(foo bar)
- (--some (plist-get it :bar) '((:foo 1 :bar 2) (:baz 3)))
- ⇒ 2
+ (-some 'null '(1 2 3))
+ ⇒ nil
+ (-some 'null '(1 2 nil))
+ ⇒ t
-- Function: -last (pred list)
Return the last x in LIST where (PRED x) is non-nil, else nil.
@@ -1842,9 +1884,9 @@ File: dash.info, Node: Threading macros, Next: Binding,
Prev: Tree operations
Starting with the value of X, thread each expression through
FORMS.
- Insert X at the position signified by the token ‘it’ in the first
- form. If there are more forms, insert the first form at the
- position signified by ‘it’ in in second form, etc.
+ Insert X at the position signified by the symbol ‘it’ in the
+ first form. If there are more forms, insert the first form at
+ the position signified by ‘it’ in in second form, etc.
(--> "def" (concat "abc" it "ghi"))
⇒ "abcdefghi"
@@ -1913,10 +1955,11 @@ control.
-- Macro: -when-let (var-val &rest body)
If VAL evaluates to non-nil, bind it to VAR and execute body.
- VAR-VAL should be a (VAR VAL) pair.
Note: binding is done according to ‘-let’ (*note -let::).
+ (fn (VAR VAL) &rest BODY)
+
(-when-let (match-index (string-match "d" "abcd")) (+ match-index 2))
⇒ 5
(-when-let ((&plist :foo foo) (list :foo "foo")) foo)
@@ -1940,10 +1983,12 @@ control.
-- Macro: -if-let (var-val then &rest else)
If VAL evaluates to non-nil, bind it to VAR and do THEN,
- otherwise do ELSE. VAR-VAL should be a (VAR VAL) pair.
+ otherwise do ELSE.
Note: binding is done according to ‘-let’ (*note -let::).
+ (fn (VAR VAL) THEN &rest ELSE)
+
(-if-let (match-index (string-match "d" "abc")) (+ match-index 3) 7)
⇒ 7
(--if-let (even? 4) it nil)
@@ -2174,7 +2219,7 @@ Functions iterating over lists for side-effect only.
Call (FN index item) for each item in LIST.
In the anaphoric form ‘--each-indexed’, the index is exposed as
- ‘it-index‘.
+ symbol ‘it-index’.
See also: ‘-map-indexed’ (*note -map-indexed::).
@@ -2713,9 +2758,9 @@ Index
(line 81)
* -grade-down: Indexing. (line 81)
* -grade-up: Indexing. (line 71)
-* -group-by: Partitioning. (line 145)
-* -if-let: Binding. (line 36)
-* -if-let*: Binding. (line 47)
+* -group-by: Partitioning. (line 187)
+* -if-let: Binding. (line 37)
+* -if-let*: Binding. (line 50)
* -insert-at: List to list. (line 109)
* -interleave: Other list operations.
(line 66)
@@ -2731,13 +2776,13 @@ Index
* -juxt: Function combinators.
(line 31)
* -keep: List to list. (line 8)
-* -lambda: Binding. (line 217)
+* -lambda: Binding. (line 220)
* -last: Other list operations.
(line 232)
* -last-item: Other list operations.
(line 254)
-* -let: Binding. (line 63)
-* -let*: Binding. (line 197)
+* -let: Binding. (line 66)
+* -let*: Binding. (line 200)
* -list: Other list operations.
(line 287)
* -map: Maps. (line 10)
@@ -2764,8 +2809,12 @@ Index
* -partial: Function combinators.
(line 9)
* -partition: Partitioning. (line 74)
+* -partition-after-item: Partitioning. (line 177)
+* -partition-after-pred: Partitioning. (line 145)
* -partition-all: Partitioning. (line 86)
* -partition-all-in-steps: Partitioning. (line 109)
+* -partition-before-item: Partitioning. (line 167)
+* -partition-before-pred: Partitioning. (line 156)
* -partition-by: Partitioning. (line 121)
* -partition-by-header: Partitioning. (line 132)
* -partition-in-steps: Partitioning. (line 97)
@@ -2836,7 +2885,7 @@ Index
(line 122)
* -update-at: List to list. (line 133)
* -when-let: Binding. (line 9)
-* -when-let*: Binding. (line 22)
+* -when-let*: Binding. (line 23)
* -zip: Other list operations.
(line 93)
* -zip-fill: Other list operations.
@@ -2858,173 +2907,177 @@ Ref: -map-when5595
Ref: -map-first6178
Ref: -map-last6656
Ref: -map-indexed7129
-Ref: -annotate7602
-Ref: -splice8092
-Ref: -splice-list8873
-Ref: -mapcat9335
-Ref: -copy9711
-Node: Sublist selection9915
-Ref: -filter10108
-Ref: -remove10526
-Ref: -remove-first10888
-Ref: -remove-last11415
-Ref: -remove-item11936
-Ref: -non-nil12330
-Ref: -slice12489
-Ref: -take13021
-Ref: -take-last13329
-Ref: -drop13652
-Ref: -drop-last13925
-Ref: -take-while14185
-Ref: -drop-while14535
-Ref: -select-by-indices14891
-Ref: -select-columns15405
-Ref: -select-column16110
-Node: List to list16573
-Ref: -keep16760
-Ref: -concat17263
-Ref: -flatten17560
-Ref: -flatten-n18319
-Ref: -replace18706
-Ref: -replace-first19169
-Ref: -replace-last19665
-Ref: -insert-at20154
-Ref: -replace-at20481
-Ref: -update-at20876
-Ref: -remove-at21367
-Ref: -remove-at-indices21855
-Node: Reductions22437
-Ref: -reduce-from22606
-Ref: -reduce-r-from23385
-Ref: -reduce24170
-Ref: -reduce-r24971
-Ref: -count25887
-Ref: -sum26111
-Ref: -product26300
-Ref: -min26509
-Ref: -min-by26735
-Ref: -max27258
-Ref: -max-by27483
-Node: Unfolding28011
-Ref: -iterate28250
-Ref: -unfold28695
-Node: Predicates29503
-Ref: -any?29627
-Ref: -all?29955
-Ref: -none?30285
-Ref: -only-some?30587
-Ref: -contains?31072
-Ref: -same-items?31461
-Ref: -is-prefix?31846
-Ref: -is-suffix?32169
-Ref: -is-infix?32492
-Node: Partitioning32846
-Ref: -split-at33034
-Ref: -split-with33319
-Ref: -split-on33722
-Ref: -split-when34398
-Ref: -separate35038
-Ref: -partition35480
-Ref: -partition-all35932
-Ref: -partition-in-steps36360
-Ref: -partition-all-in-steps36857
-Ref: -partition-by37342
-Ref: -partition-by-header37724
-Ref: -group-by38328
-Node: Indexing38765
-Ref: -elem-index38967
-Ref: -elem-indices39362
-Ref: -find-index39745
-Ref: -find-last-index40234
-Ref: -find-indices40738
-Ref: -grade-up41146
-Ref: -grade-down41549
-Node: Set operations41959
-Ref: -union42142
-Ref: -difference42584
-Ref: -intersection43001
-Ref: -powerset43438
-Ref: -permutations43651
-Ref: -distinct43951
-Node: Other list operations44275
-Ref: -rotate44500
-Ref: -repeat44795
-Ref: -cons*45058
-Ref: -snoc45445
-Ref: -interpose45858
-Ref: -interleave46156
-Ref: -zip-with46525
-Ref: -zip47228
-Ref: -zip-fill48034
-Ref: -unzip48357
-Ref: -cycle48891
-Ref: -pad49264
-Ref: -table49587
-Ref: -table-flat50377
-Ref: -first51386
-Ref: -some51760
-Ref: -last52130
-Ref: -first-item52464
-Ref: -last-item52777
-Ref: -butlast53069
-Ref: -sort53316
-Ref: -list53804
-Ref: -fix54135
-Node: Tree operations54675
-Ref: -tree-seq54871
-Ref: -tree-map55729
-Ref: -tree-map-nodes56172
-Ref: -tree-reduce57027
-Ref: -tree-reduce-from57909
-Ref: -tree-mapreduce58510
-Ref: -tree-mapreduce-from59370
-Ref: -clone60656
-Node: Threading macros60984
-Ref: ->61129
-Ref: ->>61621
-Ref: -->62126
-Ref: -as->62686
-Ref: -some->63141
-Ref: -some->>63515
-Ref: -some-->63951
-Node: Binding64422
-Ref: -when-let64634
-Ref: -when-let*65128
-Ref: -if-let65656
-Ref: -if-let*66051
-Ref: -let66668
-Ref: -let*71461
-Ref: -lambda72402
-Node: Side-effects73204
-Ref: -each73398
-Ref: -each-while73805
-Ref: -each-indexed74165
-Ref: -dotimes74676
-Ref: -doto74979
-Node: Destructive operations75406
-Ref: !cons75579
-Ref: !cdr75785
-Node: Function combinators75980
-Ref: -partial76254
-Ref: -rpartial76649
-Ref: -juxt77051
-Ref: -compose77483
-Ref: -applify78041
-Ref: -on78488
-Ref: -flip79011
-Ref: -const79323
-Ref: -cut79667
-Ref: -not80153
-Ref: -orfn80463
-Ref: -andfn80897
-Ref: -iteratefn81392
-Ref: -fixfn82095
-Ref: -prodfn83664
-Node: Development84730
-Node: Contribute85079
-Node: Changes85827
-Node: Contributors88826
-Node: Index90450
+Ref: -annotate7609
+Ref: -splice8099
+Ref: -splice-list8880
+Ref: -mapcat9342
+Ref: -copy9718
+Node: Sublist selection9922
+Ref: -filter10115
+Ref: -remove10533
+Ref: -remove-first10895
+Ref: -remove-last11422
+Ref: -remove-item11943
+Ref: -non-nil12337
+Ref: -slice12496
+Ref: -take13028
+Ref: -take-last13336
+Ref: -drop13659
+Ref: -drop-last13932
+Ref: -take-while14192
+Ref: -drop-while14542
+Ref: -select-by-indices14898
+Ref: -select-columns15412
+Ref: -select-column16117
+Node: List to list16580
+Ref: -keep16772
+Ref: -concat17275
+Ref: -flatten17572
+Ref: -flatten-n18331
+Ref: -replace18718
+Ref: -replace-first19181
+Ref: -replace-last19677
+Ref: -insert-at20166
+Ref: -replace-at20493
+Ref: -update-at20888
+Ref: -remove-at21379
+Ref: -remove-at-indices21867
+Node: Reductions22449
+Ref: -reduce-from22618
+Ref: -reduce-r-from23404
+Ref: -reduce24189
+Ref: -reduce-r24997
+Ref: -count25913
+Ref: -sum26137
+Ref: -product26326
+Ref: -min26535
+Ref: -min-by26761
+Ref: -max27284
+Ref: -max-by27509
+Node: Unfolding28037
+Ref: -iterate28276
+Ref: -unfold28721
+Node: Predicates29529
+Ref: -any?29653
+Ref: -all?29973
+Ref: -none?30303
+Ref: -only-some?30605
+Ref: -contains?31090
+Ref: -same-items?31479
+Ref: -is-prefix?31864
+Ref: -is-suffix?32187
+Ref: -is-infix?32510
+Node: Partitioning32864
+Ref: -split-at33052
+Ref: -split-with33337
+Ref: -split-on33740
+Ref: -split-when34416
+Ref: -separate35056
+Ref: -partition35498
+Ref: -partition-all35950
+Ref: -partition-in-steps36378
+Ref: -partition-all-in-steps36875
+Ref: -partition-by37360
+Ref: -partition-by-header37742
+Ref: -partition-after-pred38346
+Ref: -partition-before-pred38717
+Ref: -partition-before-item39095
+Ref: -partition-after-item39406
+Ref: -group-by39712
+Node: Indexing40149
+Ref: -elem-index40351
+Ref: -elem-indices40746
+Ref: -find-index41129
+Ref: -find-last-index41618
+Ref: -find-indices42122
+Ref: -grade-up42530
+Ref: -grade-down42933
+Node: Set operations43343
+Ref: -union43526
+Ref: -difference43968
+Ref: -intersection44385
+Ref: -powerset44822
+Ref: -permutations45035
+Ref: -distinct45335
+Node: Other list operations45659
+Ref: -rotate45884
+Ref: -repeat46179
+Ref: -cons*46442
+Ref: -snoc46829
+Ref: -interpose47242
+Ref: -interleave47540
+Ref: -zip-with47909
+Ref: -zip48626
+Ref: -zip-fill49432
+Ref: -unzip49755
+Ref: -cycle50289
+Ref: -pad50662
+Ref: -table50985
+Ref: -table-flat51775
+Ref: -first52784
+Ref: -some53156
+Ref: -last53465
+Ref: -first-item53799
+Ref: -last-item54112
+Ref: -butlast54404
+Ref: -sort54651
+Ref: -list55139
+Ref: -fix55470
+Node: Tree operations56010
+Ref: -tree-seq56206
+Ref: -tree-map57064
+Ref: -tree-map-nodes57507
+Ref: -tree-reduce58362
+Ref: -tree-reduce-from59244
+Ref: -tree-mapreduce59845
+Ref: -tree-mapreduce-from60705
+Ref: -clone61991
+Node: Threading macros62319
+Ref: ->62464
+Ref: ->>62956
+Ref: -->63461
+Ref: -as->64022
+Ref: -some->64477
+Ref: -some->>64851
+Ref: -some-->65287
+Node: Binding65758
+Ref: -when-let65970
+Ref: -when-let*66455
+Ref: -if-let66983
+Ref: -if-let*67378
+Ref: -let67995
+Ref: -let*72788
+Ref: -lambda73729
+Node: Side-effects74531
+Ref: -each74725
+Ref: -each-while75132
+Ref: -each-indexed75492
+Ref: -dotimes76010
+Ref: -doto76313
+Node: Destructive operations76740
+Ref: !cons76913
+Ref: !cdr77119
+Node: Function combinators77314
+Ref: -partial77588
+Ref: -rpartial77983
+Ref: -juxt78385
+Ref: -compose78817
+Ref: -applify79375
+Ref: -on79822
+Ref: -flip80345
+Ref: -const80657
+Ref: -cut81001
+Ref: -not81487
+Ref: -orfn81797
+Ref: -andfn82231
+Ref: -iteratefn82726
+Ref: -fixfn83429
+Ref: -prodfn84998
+Node: Development86064
+Node: Contribute86413
+Node: Changes87161
+Node: Contributors90160
+Node: Index91784
End Tag Table
diff --git a/dash.texi b/dash.texi
index a0b9bbf..097bf3c 100644
--- a/dash.texi
+++ b/dash.texi
@@ -298,7 +298,7 @@ See also: @code{-map-when} (@pxref{-map-when}),
@code{-replace-last} (@pxref{-re
@defun -map-indexed (fn list)
Return a new list consisting of the result of (@var{fn} index item) for each
item in @var{list}.
-In the anaphoric form @code{--map-indexed}, the index is exposed as `it-index`.
+In the anaphoric form @code{--map-indexed}, the index is exposed as symbol
@code{it-index}.
See also: @code{-each-indexed} (@pxref{-each-indexed}).
@@ -1070,7 +1070,7 @@ item, etc. If @var{list} contains no items, return
@var{initial-value} and
@var{fn} is not called.
In the anaphoric form @code{--reduce-from}, the accumulated value is
-exposed as `acc`.
+exposed as symbol @code{acc}.
See also: @code{-reduce} (@pxref{-reduce}), @code{-reduce-r}
(@pxref{-reduce-r})
@@ -1126,7 +1126,7 @@ reduce return the result of calling @var{fn} with no
arguments. If
@var{list} has only 1 item, it is returned and @var{fn} is not called.
In the anaphoric form @code{--reduce}, the accumulated value is
-exposed as `acc`.
+exposed as symbol @code{acc}.
See also: @code{-reduce-from} (@pxref{-reduce-from}), @code{-reduce-r}
(@pxref{-reduce-r})
@@ -1404,8 +1404,8 @@ Alias: @code{-any-p}, @code{-some?}, @code{-some-p}
@result{} nil
@end group
@group
-(--any? (= 0 (% it 2)) '(1 2 3))
- @result{} t
+(-any? 'null '(1 3 5))
+ @result{} nil
@end group
@end example
@end defun
@@ -1840,6 +1840,86 @@ other value (the body).
@end example
@end defun
+@anchor{-partition-after-pred}
+@defun -partition-after-pred (pred list)
+Partition directly after each time @var{pred} is true on an element of
@var{list}.
+
+@example
+@group
+(-partition-after-pred (function oddp) '())
+ @result{} '()
+@end group
+@group
+(-partition-after-pred (function oddp) '(1))
+ @result{} '((1))
+@end group
+@group
+(-partition-after-pred (function oddp) '(0 1))
+ @result{} '((0 1))
+@end group
+@end example
+@end defun
+
+@anchor{-partition-before-pred}
+@defun -partition-before-pred (pred list)
+Partition directly before each time @var{pred} is true on an element of
@var{list}.
+
+@example
+@group
+(-partition-before-pred (function oddp) '())
+ @result{} '()
+@end group
+@group
+(-partition-before-pred (function oddp) '(1))
+ @result{} '((1))
+@end group
+@group
+(-partition-before-pred (function oddp) '(0 1))
+ @result{} '((0) (1))
+@end group
+@end example
+@end defun
+
+@anchor{-partition-before-item}
+@defun -partition-before-item (item list)
+Partition directly before each time @var{item} appears in @var{list}.
+
+@example
+@group
+(-partition-before-item 3 '())
+ @result{} '()
+@end group
+@group
+(-partition-before-item 3 '(1))
+ @result{} '((1))
+@end group
+@group
+(-partition-before-item 3 '(3))
+ @result{} '((3))
+@end group
+@end example
+@end defun
+
+@anchor{-partition-after-item}
+@defun -partition-after-item (item list)
+Partition directly after each time @var{item} appears in @var{list}.
+
+@example
+@group
+(-partition-after-item 3 '())
+ @result{} '()
+@end group
+@group
+(-partition-after-item 3 '(1))
+ @result{} '((1))
+@end group
+@group
+(-partition-after-item 3 '(3))
+ @result{} '((3))
+@end group
+@end example
+@end defun
+
@anchor{-group-by}
@defun -group-by (fn list)
Separate @var{list} into an alist whose keys are @var{fn} applied to the
@@ -2288,8 +2368,8 @@ function is applied pairwise taking as first argument
element of
@var{list1} and as second argument element of @var{list2} at corresponding
position.
-The anaphoric form @code{--zip-with} binds the elements from @var{list1} as
`it`,
-and the elements from @var{list2} as `other`.
+The anaphoric form @code{--zip-with} binds the elements from @var{list1} as
symbol @code{it},
+and the elements from @var{list2} as symbol @code{other}.
@example
@group
@@ -2497,8 +2577,8 @@ Alias: @code{-find}
@result{} nil
@end group
@group
-(--first (> it 2) '(1 2 3))
- @result{} 3
+(-first 'null '(1 3 5))
+ @result{} nil
@end group
@end example
@end defun
@@ -2515,12 +2595,12 @@ Alias: @code{-any}
@result{} t
@end group
@group
-(--some (member 'foo it) '((foo bar) (baz)))
- @result{} '(foo bar)
+(-some 'null '(1 2 3))
+ @result{} nil
@end group
@group
-(--some (plist-get it :bar) '((:foo 1 :bar 2) (:baz 3)))
- @result{} 2
+(-some 'null '(1 2 nil))
+ @result{} t
@end group
@end example
@end defun
@@ -2925,7 +3005,7 @@ last item in second form, etc.
@defmac --> (x &rest forms)
Starting with the value of @var{x}, thread each expression through @var{forms}.
-Insert @var{x} at the position signified by the token @code{it} in the first
+Insert @var{x} at the position signified by the symbol @code{it} in the first
form. If there are more forms, insert the first form at the position
signified by @code{it} in in second form, etc.
@@ -3042,10 +3122,11 @@ Convenient versions of `let` and `let*` constructs
combined with flow control.
@anchor{-when-let}
@defmac -when-let (var-val &rest body)
If @var{val} evaluates to non-nil, bind it to @var{var} and execute body.
-@var{var-val} should be a (@var{var} @var{val}) pair.
Note: binding is done according to @code{-let} (@pxref{-let}).
+(fn (@var{var} @var{val}) &rest @var{body})
+
@example
@group
(-when-let (match-index (string-match "d" "abcd")) (+ match-index 2))
@@ -3087,10 +3168,12 @@ encountered.
@anchor{-if-let}
@defmac -if-let (var-val then &rest else)
If @var{val} evaluates to non-nil, bind it to @var{var} and do @var{then},
-otherwise do @var{else}. @var{var-val} should be a (@var{var} @var{val}) pair.
+otherwise do @var{else}.
Note: binding is done according to @code{-let} (@pxref{-let}).
+(fn (@var{var} @var{val}) @var{then} &rest @var{else})
+
@example
@group
(-if-let (match-index (string-match "d" "abc")) (+ match-index 3) 7)
@@ -3386,7 +3469,7 @@ Return nil, used for side-effects only.
@defun -each-indexed (list fn)
Call (@var{fn} index item) for each item in @var{list}.
-In the anaphoric form @code{--each-indexed}, the index is exposed as
`it-index`.
+In the anaphoric form @code{--each-indexed}, the index is exposed as symbol
@code{it-index}.
See also: @code{-map-indexed} (@pxref{-map-indexed}).
diff --git a/dev/examples.el b/dev/examples.el
index d19164a..8b94fdb 100644
--- a/dev/examples.el
+++ b/dev/examples.el
@@ -384,6 +384,8 @@ new list."
(defexamples -any?
(-any? 'even? '(1 2 3)) => t
(-any? 'even? '(1 3 5)) => nil
+ (-any? 'null '(1 3 5)) => nil
+ (-any? 'null '(1 3 ())) => t
(--any? (= 0 (% it 2)) '(1 2 3)) => t)
(defexamples -all?
@@ -698,10 +700,14 @@ new list."
(defexamples -first
(-first 'even? '(1 2 3)) => 2
(-first 'even? '(1 3 5)) => nil
+ (-first 'null '(1 3 5)) => nil
+ (-first 'null '(1 3 ())) => nil
(--first (> it 2) '(1 2 3)) => 3)
(defexamples -some
(-some 'even? '(1 2 3)) => t
+ (-some 'null '(1 2 3)) => nil
+ (-some 'null '(1 2 ())) => t
(--some (member 'foo it) '((foo bar) (baz))) => '(foo bar)
(--some (plist-get it :bar) '((:foo 1 :bar 2) (:baz 3))) => 2)
- [elpa] externals/dash 66e3e94 079/316: Define -second-item through to -fifth-item, (continued)
- [elpa] externals/dash 66e3e94 079/316: Define -second-item through to -fifth-item, ELPA Syncer, 2021/02/15
- [elpa] externals/dash dd30a1f 047/316: [Feature #196] Add -powerset and -permutations (#203), ELPA Syncer, 2021/02/15
- [elpa] externals/dash 5f7f2d6 056/316: Add example for an iota error condition, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 524e6fe 057/316: Fix -map-last docs (#220), ELPA Syncer, 2021/02/15
- [elpa] externals/dash a3b40f8 058/316: Make --> bind IT for use anywhere in FORMS, and add -as->., ELPA Syncer, 2021/02/15
- [elpa] externals/dash 13f9ece 060/316: add tests for nesting anaphoric macros., ELPA Syncer, 2021/02/15
- [elpa] externals/dash d7b769b 065/316: Use standard Emacs quoting for bound symbols, ELPA Syncer, 2021/02/15
- [elpa] externals/dash b4faa93 066/316: Merge pull request #224 from Wilfred/when-let-docstring, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 0df0ff1 067/316: Merge pull request #222 from zck/partition-before-after, ELPA Syncer, 2021/02/15
- [elpa] externals/dash dcb0ec1 069/316: Merge pull request #232 from Wilfred/improve_docs_wording, ELPA Syncer, 2021/02/15
- [elpa] externals/dash c026c46 073/316: Merge pull request #240 from basil-conto/239,
ELPA Syncer <=
- [elpa] externals/dash bdcaf68 074/316: Merge pull request #236 from Wilfred/robust-docs-generation, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 3493fc9 076/316: Merge pull request #242 from magnars/fix-infinite-loop-zip-interleave, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 057e55c 081/316: Update examples.el, remove duplicate -third-item, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 4b46527 080/316: Merge pull request #238 from Wilfred/more-item-accesses, ELPA Syncer, 2021/02/15
- [elpa] externals/dash e7764ea 083/316: Formatting, ELPA Syncer, 2021/02/15
- [elpa] externals/dash f8c8dc0 084/316: Add -tails and -inits, ELPA Syncer, 2021/02/15
- [elpa] externals/dash d8bcf56 086/316: Add -running-sum and -running-product, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 72b8d39 096/316: Add -common-prefix, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 91d8cb0 091/316: Move inits and tails under reductions in the examples, ELPA Syncer, 2021/02/15
- [elpa] externals/dash e9c792f 094/316: Merge pull request #257 from Wilfred/update_docs, ELPA Syncer, 2021/02/15