[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dash 3493fc9 076/316: Merge pull request #242 from magn
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dash 3493fc9 076/316: Merge pull request #242 from magnars/fix-infinite-loop-zip-interleave |
Date: |
Mon, 15 Feb 2021 15:57:29 -0500 (EST) |
branch: externals/dash
commit 3493fc97cf885adfd08b6e1db8f9af7c34fe9cb1
Merge: bdcaf68 7267556
Author: Matus Goljer <dota.keys@gmail.com>
Commit: GitHub <noreply@github.com>
Merge pull request #242 from magnars/fix-infinite-loop-zip-interleave
Fix infinite loop in -zip/-interleave when called with no arguments.
---
dash.el | 32 +++++++++++++++++---------------
dev/examples.el | 6 ++++--
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/dash.el b/dash.el
index 4942772..2b2e71b 100644
--- a/dash.el
+++ b/dash.el
@@ -1104,11 +1104,12 @@ elements of LIST. Keys are compared by `equal'."
(defun -interleave (&rest lists)
"Return a new list of the first item in each list, then the second etc."
(declare (pure t) (side-effect-free t))
- (let (result)
- (while (-none? 'null lists)
- (--each lists (!cons (car it) result))
- (setq lists (-map 'cdr lists)))
- (nreverse result)))
+ (when lists
+ (let (result)
+ (while (-none? 'null lists)
+ (--each lists (!cons (car it) result))
+ (setq lists (-map 'cdr lists)))
+ (nreverse result))))
(defmacro --zip-with (form list1 list2)
"Anaphoric form of `-zip-with'.
@@ -1150,16 +1151,17 @@ of cons cells. Otherwise, return the groupings as a
list of lists.
Please note! This distinction is being removed in an upcoming 3.0
release of Dash. If you rely on this behavior, use -zip-pair instead."
(declare (pure t) (side-effect-free t))
- (let (results)
- (while (-none? 'null lists)
- (setq results (cons (mapcar 'car lists) results))
- (setq lists (mapcar 'cdr lists)))
- (setq results (nreverse results))
- (if (= (length lists) 2)
- ;; to support backward compatability, return
- ;; a cons cell if two lists were provided
- (--map (cons (car it) (cadr it)) results)
- results)))
+ (when lists
+ (let (results)
+ (while (-none? 'null lists)
+ (setq results (cons (mapcar 'car lists) results))
+ (setq lists (mapcar 'cdr lists)))
+ (setq results (nreverse results))
+ (if (= (length lists) 2)
+ ;; to support backward compatability, return
+ ;; a cons cell if two lists were provided
+ (--map (cons (car it) (cadr it)) results)
+ results))))
(defalias '-zip-pair '-zip)
diff --git a/dev/examples.el b/dev/examples.el
index 8b94fdb..da9da38 100644
--- a/dev/examples.el
+++ b/dev/examples.el
@@ -645,7 +645,8 @@ new list."
(-interleave '(1 2) '("a" "b")) => '(1 "a" 2 "b")
(-interleave '(1 2) '("a" "b") '("A" "B")) => '(1 "a" "A" 2 "b" "B")
(-interleave '(1 2 3) '("a" "b")) => '(1 "a" 2 "b")
- (-interleave '(1 2 3) '("a" "b" "c" "d")) => '(1 "a" 2 "b" 3 "c"))
+ (-interleave '(1 2 3) '("a" "b" "c" "d")) => '(1 "a" 2 "b" 3 "c")
+ (-interleave) => nil)
(defexamples -zip-with
(-zip-with '+ '(1 2 3) '(4 5 6)) => '(5 7 9)
@@ -657,7 +658,8 @@ new list."
(-zip '(1 2 3) '(4 5 6 7)) => '((1 . 4) (2 . 5) (3 . 6))
(-zip '(1 2 3 4) '(4 5 6)) => '((1 . 4) (2 . 5) (3 . 6))
(-zip '(1 2 3) '(4 5 6) '(7 8 9)) => '((1 4 7) (2 5 8) (3 6 9))
- (-zip '(1 2) '(3 4 5) '(6)) => '((1 3 6)))
+ (-zip '(1 2) '(3 4 5) '(6)) => '((1 3 6))
+ (-zip) => nil)
(defexamples -zip-fill
(-zip-fill 0 '(1 2 3 4 5) '(6 7 8 9)) => '((1 . 6) (2 . 7) (3 . 8) (4 . 9)
(5 . 0)))
- [elpa] externals/dash 5f7f2d6 056/316: Add example for an iota error condition, (continued)
- [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, 2021/02/15
- [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 <=
- [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
- [elpa] externals/dash c1991d4 099/316: Merge pull request #262 from basil-conto/blc/common-prefix, ELPA Syncer, 2021/02/15
- [elpa] externals/dash 48a5015 101/316: Merge pull request #265 from Wilfred/missing-keywords, ELPA Syncer, 2021/02/15