[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dash 2cc124b 423/439: [-let] Generate better code when
From: |
Phillip Lord |
Subject: |
[elpa] externals/dash 2cc124b 423/439: [-let] Generate better code when skipping conses |
Date: |
Tue, 04 Aug 2015 20:31:38 +0000 |
branch: externals/dash
commit 2cc124b9576e82db2803b967e19c76dc418a8609
Author: Matus Goljer <address@hidden>
Commit: Matus Goljer <address@hidden>
[-let] Generate better code when skipping conses
---
dash.el | 5 ++---
dev/examples.el | 4 ++++
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dash.el b/dash.el
index b8822ac..d2c2b4d 100644
--- a/dash.el
+++ b/dash.el
@@ -1237,9 +1237,8 @@ All returned symbols are guaranteed to be unique."
((= skip-cdr 0)
`(pop ,source))
(t
- `(progn
- (setq ,source (nthcdr ,skip-cdr ,source))
- (pop ,source)))))
+ `(prog1 ,(dash--match-cons-get-car skip-cdr source)
+ (setq ,source ,(dash--match-cons-get-cdr (1+ skip-cdr) source))))))
(defun dash--match-cons-get-car (skip-cdr source)
"Helper function generating idiomatic code to get nth car."
diff --git a/dev/examples.el b/dev/examples.el
index 14835ee..b32d5c5 100644
--- a/dev/examples.el
+++ b/dev/examples.el
@@ -817,6 +817,10 @@ new list."
(-let [(_ _ _ a) (list 1 2 3 4 5)] a) => 4
(-let [(_ _ _ (a b)) (list 1 2 3 (list 4 5))] (list a b)) => '(4 5)
(-let [(_ a _ b) (list 1 2 3 4 5)] (list a b)) => '(2 4)
+ (-let [(_ a _ b _ c) (list 1 2 3 4 5 6)] (list a b c)) => '(2 4 6)
+ (-let [(_ a _ b _ _ _ c) (list 1 2 3 4 5 6 7 8)] (list a b c)) => '(2 4 8)
+ (-let [(_ a _ _ _ b _ c) (list 1 2 3 4 5 6 7 8)] (list a b c)) => '(2 6 8)
+ (-let [(_ _ _ a _ _ _ b _ _ _ c) (list 1 2 3 4 5 6 7 8 9 10 11 12)] (list
a b c)) => '(4 8 12)
(-let [(_ (a b) _ c) (list 1 (list 2 3) 4 5)] (list a b c)) => '(2 3 5)
(-let [(_ (a b) _ . c) (list 1 (list 2 3) 4 5)] (list a b c)) => '(2 3 (5))
(-let [(_ (a b) _ (c d)) (list 1 (list 2 3) 4 (list 5 6))] (list a b c d))
=> '(2 3 5 6)
- [elpa] externals/dash 8530742 410/439: Add @wasamasa and @occidens to list of contributors, (continued)
- [elpa] externals/dash 8530742 410/439: Add @wasamasa and @occidens to list of contributors, Phillip Lord, 2015/08/04
- [elpa] externals/dash db784f8 403/439: Merge pull request #124 from occidens/skiptests, Phillip Lord, 2015/08/04
- [elpa] externals/dash 9ebd172 421/439: [-let] Generate differently named symbols for temporary sources (makes, Phillip Lord, 2015/08/04
- [elpa] externals/dash 7d7a457 402/439: Allow run-tests.sh to skip tests, Phillip Lord, 2015/08/04
- [elpa] externals/dash 3a3f528 396/439: Add info manual, Phillip Lord, 2015/08/04
- [elpa] externals/dash 4bd6273 397/439: Invoke makeinfo on the generated .texi, Phillip Lord, 2015/08/04
- [elpa] externals/dash cf7ca23 415/439: [Fix #97] Add -remove-item, Phillip Lord, 2015/08/04
- [elpa] externals/dash 90056bd 401/439: Merge pull request #121 from holomorph/master, Phillip Lord, 2015/08/04
- [elpa] externals/dash 3992e3c 406/439: Make `-fixfn' more robust at handling floats, Phillip Lord, 2015/08/04
- [elpa] externals/dash 1fde888 407/439: Merge pull request #125 from wasamasa/feature-some, Phillip Lord, 2015/08/04
- [elpa] externals/dash 2cc124b 423/439: [-let] Generate better code when skipping conses,
Phillip Lord <=
- [elpa] externals/dash c61fc34 417/439: Add -remove-first/last, -map-first/last, -replace-first/last, Phillip Lord, 2015/08/04
- [elpa] externals/dash 40896b8 418/439: Fix the -let debug declaration, Phillip Lord, 2015/08/04