emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/dash ec835e4 081/426: Add !split-at


From: Phillip Lord
Subject: [elpa] externals/dash ec835e4 081/426: Add !split-at
Date: Tue, 04 Aug 2015 19:36:51 +0000

branch: externals/dash
commit ec835e44181690cc3e90b992cca5392452f0f7ef
Author: Magnar Sveen <address@hidden>
Commit: Magnar Sveen <address@hidden>

    Add !split-at
---
 README.md   |   10 ++++++++++
 bang.el     |    5 +++++
 examples.el |    4 ++++
 3 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.md
index 8ff0a3f..e044d39 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,7 @@ Or you can just dump `bang.el` in your load path somewhere.
 * [!drop](#drop-n-list) `(n list)`
 * [!take-while](#take-while-fn-list) `(fn list)`
 * [!drop-while](#drop-while-fn-list) `(fn list)`
+* [!split-at](#split-at-n-list) `(n list)`
 * [!split-with](#split-with-fn-list) `(fn list)`
 * [!interpose](#interpose-sep-list) `(sep list)`
 * [!replace-where](#replace-where-pred-rep-list) `(pred rep list)`
@@ -205,6 +206,15 @@ Returns the tail of `list` starting from the first item 
for which (`fn` item) re
 (!!drop-while (< it 4) '(1 2 3 4 3 2 1)) ;; => '(4 3 2 1)
 ```
 
+### !split-at `(n list)`
+
+Returns a list of ((!take `n` `list`) (!drop `n` `list`))
+
+```cl
+(!split-at 3 '(1 2 3 4 5)) ;; => '((1 2 3) (4 5))
+(!split-at 17 '(1 2 3 4 5)) ;; => '((1 2 3 4 5) nil)
+```
+
 ### !split-with `(fn list)`
 
 Returns a list of ((!take-while `fn` `list`) (!drop-while `fn` `list`))
diff --git a/bang.el b/bang.el
index f52caef..91918aa 100644
--- a/bang.el
+++ b/bang.el
@@ -187,6 +187,11 @@ Thus function FN should return a collection."
   "Returns the tail of LIST starting from the first item for which (FN item) 
returns nil."
   (!!drop-while (funcall fn it) list))
 
+(defun !split-at (n list)
+  "Returns a list of ((!take N LIST) (!drop N LIST))"
+  (list (!take n list)
+        (!drop n list)))
+
 (defmacro !!split-with (form list)
   "Anaphoric form of `!split-with'."
   `(list (!!take-while ,form ,list)
diff --git a/examples.el b/examples.el
index 01c3b15..0a7c828 100644
--- a/examples.el
+++ b/examples.el
@@ -76,6 +76,10 @@
   (!drop-while 'even? '(2 4 5 6)) => '(5 6)
   (!!drop-while (< it 4) '(1 2 3 4 3 2 1)) => '(4 3 2 1))
 
+(defexamples !split-at
+  (!split-at 3 '(1 2 3 4 5)) => '((1 2 3) (4 5))
+  (!split-at 17 '(1 2 3 4 5)) => '((1 2 3 4 5) nil))
+
 (defexamples !split-with
   (!split-with 'even? '(1 2 3 4)) => '(() (1 2 3 4))
   (!split-with 'even? '(2 4 5 6)) => '((2 4) (5 6))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]