[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dash f780322 305/426: Add `-flatten-n`
From: |
Phillip Lord |
Subject: |
[elpa] externals/dash f780322 305/426: Add `-flatten-n` |
Date: |
Tue, 04 Aug 2015 19:38:28 +0000 |
branch: externals/dash
commit f780322bb6a546c2f13bcacb6ca21eb92b6e2fe5
Author: Matus Goljer <address@hidden>
Commit: Matus Goljer <address@hidden>
Add `-flatten-n`
---
README.md | 11 +++++++++++
dash.el | 4 ++++
dev/examples.el | 8 ++++++++
3 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
index 092aa55..4b55241 100644
--- a/README.md
+++ b/README.md
@@ -44,6 +44,7 @@ Include this in your emacs settings to get syntax
highlighting:
* [-map-when](#-map-when-pred-rep-list) `(pred rep list)`
* [-map-indexed](#-map-indexed-fn-list) `(fn list)`
* [-flatten](#-flatten-l) `(l)`
+* [-flatten-n](#-flatten-n-num-list) `(num list)`
* [-concat](#-concat-rest-lists) `(&rest lists)`
* [-mapcat](#-mapcat-fn-list) `(fn list)`
* [-slice](#-slice-list-from-optional-to) `(list from &optional to)`
@@ -301,6 +302,16 @@ Takes a nested list `l` and returns its contents as a
single, flat list.
(-flatten '(1 2 (3 . 4))) ;; => '(1 2 (3 . 4))
```
+#### -flatten-n `(num list)`
+
+Flatten `num` levels of a nested `list`.
+
+```cl
+(-flatten-n 1 '((1 2) ((3 4) ((5 6))))) ;; => '(1 2 (3 4) ((5 6)))
+(-flatten-n 2 '((1 2) ((3 4) ((5 6))))) ;; => '(1 2 3 4 (5 6))
+(-flatten-n 3 '((1 2) ((3 4) ((5 6))))) ;; => '(1 2 3 4 5 6)
+```
+
#### -concat `(&rest lists)`
Returns a new list with the concatenation of the elements in the supplied
`lists`.
diff --git a/dash.el b/dash.el
index 2e2eccf..a411e60 100644
--- a/dash.el
+++ b/dash.el
@@ -275,6 +275,10 @@ through the REP function."
(-mapcat '-flatten l)
(list l)))
+(defun -flatten-n (num list)
+ "Flatten NUM levels of a nested LIST."
+ (-last-item (--iterate (--mapcat (-list it) it) list (1+ num))))
+
(defun -concat (&rest lists)
"Returns a new list with the concatenation of the elements in the supplied
LISTS."
(apply 'append lists))
diff --git a/dev/examples.el b/dev/examples.el
index 9520f44..ef9c3b8 100644
--- a/dev/examples.el
+++ b/dev/examples.el
@@ -48,6 +48,14 @@
(-flatten '((1 (2 3) (((4 (5))))))) => '(1 2 3 4 5)
(-flatten '(1 2 (3 . 4))) => '(1 2 (3 . 4)))
+ (defexamples -flatten-n
+ (-flatten-n 1 '((1 2) ((3 4) ((5 6))))) => '(1 2 (3 4) ((5 6)))
+ (-flatten-n 2 '((1 2) ((3 4) ((5 6))))) => '(1 2 3 4 (5 6))
+ (-flatten-n 3 '((1 2) ((3 4) ((5 6))))) => '(1 2 3 4 5 6)
+ (-flatten-n 0 '(3 4)) => '(3 4)
+ (-flatten-n 0 '((1 2) (3 4))) => '((1 2) (3 4))
+ (-flatten-n 0 '(((1 2) (3 4)))) => '(((1 2) (3 4))))
+
(defexamples -concat
(-concat '(1)) => '(1)
(-concat '(1) '(2)) => '(1 2)
- [elpa] externals/dash a803dd5 414/426: Merge readme changes, (continued)
- [elpa] externals/dash a803dd5 414/426: Merge readme changes, Phillip Lord, 2015/08/04
- [elpa] externals/dash 1d4881f 413/426: Update README, Phillip Lord, 2015/08/04
- [elpa] externals/dash b075846 287/426: Add -iterate, -unfold, Phillip Lord, 2015/08/04
- [elpa] externals/dash 2db56f5 424/426: [-let] Add support for &as bindings (#115), Phillip Lord, 2015/08/04
- [elpa] externals/dash 47e11ae 378/426: Update docs, Phillip Lord, 2015/08/04
- [elpa] externals/dash 8dfa9b6 292/426: Release 2.6.0, Phillip Lord, 2015/08/04
- [elpa] externals/dash c61113b 420/426: [-let] Update outdated comment, Phillip Lord, 2015/08/04
- [elpa] externals/dash c7b4cff 370/426: Update readme.md, Phillip Lord, 2015/08/04
- [elpa] externals/dash 38cd4d2 284/426: Fix fontification when there are dashes, Phillip Lord, 2015/08/04
- [elpa] externals/dash abff641 290/426: Merge pull request #76 from Fuco1/unfold, Phillip Lord, 2015/08/04
- [elpa] externals/dash f780322 305/426: Add `-flatten-n`,
Phillip Lord <=
- [elpa] externals/dash c952a54 300/426: Merge pull request #90 from tmalsburg/last-item-doc, Phillip Lord, 2015/08/04
- [elpa] externals/dash faeb61a 379/426: Merge pull request #105 from fbergroth/debug-forms, Phillip Lord, 2015/08/04
- [elpa] externals/dash 90056bd 401/426: Merge pull request #121 from holomorph/master, Phillip Lord, 2015/08/04
- [elpa] externals/dash 733274f 398/426: Merge pull request #120 from holomorph/info-manual, Phillip Lord, 2015/08/04
- [elpa] externals/dash c09c0f6 372/426: Merge branch 'more-destructuring' (#103) of https://github.com/fbergroth/dash.el, Phillip Lord, 2015/08/04
- [elpa] externals/dash 7d7a457 402/426: Allow run-tests.sh to skip tests, Phillip Lord, 2015/08/04
- [elpa] externals/dash db784f8 403/426: Merge pull request #124 from occidens/skiptests, Phillip Lord, 2015/08/04
- [elpa] externals/dash 3b63476 412/426: Move anaphoric function intro up into Functions section, Phillip Lord, 2015/08/04
- [elpa] externals/dash 7bd6b3b 400/426: Add dir entry to texinfo template, Phillip Lord, 2015/08/04
- [elpa] externals/dash 81b808d 409/426: Ignore dash.elc, Phillip Lord, 2015/08/04