[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dash 8c75026 080/439: Add !drop
From: |
Phillip Lord |
Subject: |
[elpa] externals/dash 8c75026 080/439: Add !drop |
Date: |
Tue, 04 Aug 2015 20:26:37 +0000 |
branch: externals/dash
commit 8c750265762933dd9a3b6a7417f232b0399f4a1d
Author: Magnar Sveen <address@hidden>
Commit: Magnar Sveen <address@hidden>
Add !drop
---
README.md | 10 ++++++++++
bang.el | 7 +++++++
examples.el | 4 ++++
3 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
index 98f1ea3..8ff0a3f 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@ Or you can just dump `bang.el` in your load path somewhere.
* [!concat](#concat-rest-lists) `(&rest lists)`
* [!mapcat](#mapcat-fn-list) `(fn list)`
* [!take](#take-n-list) `(n list)`
+* [!drop](#drop-n-list) `(n list)`
* [!take-while](#take-while-fn-list) `(fn list)`
* [!drop-while](#drop-while-fn-list) `(fn list)`
* [!split-with](#split-with-fn-list) `(fn list)`
@@ -175,6 +176,15 @@ Returns a new list of the first `n` items in `list`, or
all items if there are f
(!take 17 '(1 2 3 4 5)) ;; => '(1 2 3 4 5)
```
+### !drop `(n list)`
+
+Returns the tail of `list` without the first `n` items.
+
+```cl
+(!drop 3 '(1 2 3 4 5)) ;; => '(4 5)
+(!drop 17 '(1 2 3 4 5)) ;; => '()
+```
+
### !take-while `(fn list)`
Returns a new list of successive items from `list` while (`fn` item) returns a
non-nil value.
diff --git a/bang.el b/bang.el
index 4320a74..f52caef 100644
--- a/bang.el
+++ b/bang.el
@@ -153,6 +153,13 @@ Thus function FN should return a collection."
(setq n (1- n)))
(nreverse result)))
+(defun !drop (n list)
+ "Returns the tail of LIST without the first N items."
+ (while (and list (> n 0))
+ (setq list (cdr list))
+ (setq n (1- n)))
+ list)
+
(defmacro !!take-while (form list)
"Anaphoric form of `!take-while'."
(let ((l (make-symbol "list"))
diff --git a/examples.el b/examples.el
index c08d46b..01c3b15 100644
--- a/examples.el
+++ b/examples.el
@@ -62,6 +62,10 @@
(!take 3 '(1 2 3 4 5)) => '(1 2 3)
(!take 17 '(1 2 3 4 5)) => '(1 2 3 4 5))
+(defexamples !drop
+ (!drop 3 '(1 2 3 4 5)) => '(4 5)
+ (!drop 17 '(1 2 3 4 5)) => '())
+
(defexamples !take-while
(!take-while 'even? '(1 2 3 4)) => '()
(!take-while 'even? '(2 4 5 6)) => '(2 4)
- [elpa] externals/dash ca3eea7 070/439: Fix examples-to-docs to support documenting macros., (continued)
- [elpa] externals/dash ca3eea7 070/439: Fix examples-to-docs to support documenting macros., Phillip Lord, 2015/08/04
- [elpa] externals/dash b29a5bb 071/439: Use make-symbol in macros to avoid names clashing., Phillip Lord, 2015/08/04
- [elpa] externals/dash 6f17346 068/439: Don't run !rpartial tests on Emacsen <24, Phillip Lord, 2015/08/04
- [elpa] externals/dash 66ffaa6 072/439: Add !interpose, Phillip Lord, 2015/08/04
- [elpa] externals/dash ec6a85f 074/439: Add threading macro !!-> with `it` as placeholder., Phillip Lord, 2015/08/04
- [elpa] externals/dash 9410f7e 073/439: Add !replace-where, Phillip Lord, 2015/08/04
- [elpa] externals/dash cd2a793 069/439: Run travis-ci on both E23 and E24, Phillip Lord, 2015/08/04
- [elpa] externals/dash 4e76865 075/439: Add !take-while, Phillip Lord, 2015/08/04
- [elpa] externals/dash 6238f8f 077/439: Add !split-with, Phillip Lord, 2015/08/04
- [elpa] externals/dash b9b6330 079/439: Add !take, Phillip Lord, 2015/08/04
- [elpa] externals/dash 8c75026 080/439: Add !drop,
Phillip Lord <=
- [elpa] externals/dash 123eaaa 078/439: Docs: Refer to !replace-where from !!replace-where., Phillip Lord, 2015/08/04
- [elpa] externals/dash ec835e4 081/439: Add !split-at, Phillip Lord, 2015/08/04
- [elpa] externals/dash 3802890 082/439: Simplify !concat, Phillip Lord, 2015/08/04
- [elpa] externals/dash fea1aa3 086/439: Add -interleave, Phillip Lord, 2015/08/04
- [elpa] externals/dash 0dab44c 084/439: Add -flatten, Phillip Lord, 2015/08/04
- [elpa] externals/dash 82a12a2 076/439: Add !drop-while, Phillip Lord, 2015/08/04
- [elpa] externals/dash 9ff9fd0 085/439: Move functions that are not strictly list related last., Phillip Lord, 2015/08/04
- [elpa] externals/dash 38cc9e7 088/439: Simplify -interleave with -none?, Phillip Lord, 2015/08/04
- [elpa] externals/dash 4b5e24b 087/439: Docs: move -any? -all? -none? and -each up., Phillip Lord, 2015/08/04
- [elpa] externals/dash 0e5c69b 089/439: Docs: more concise example for anaphoric functions., Phillip Lord, 2015/08/04