[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dash 1fde888 407/439: Merge pull request #125 from wasa
From: |
Phillip Lord |
Subject: |
[elpa] externals/dash 1fde888 407/439: Merge pull request #125 from wasamasa/feature-some |
Date: |
Tue, 04 Aug 2015 20:31:19 +0000 |
branch: externals/dash
commit 1fde888498a9480dfe3da97fd67fc167a95a6337
Merge: db784f8 e574465
Author: Magnar Sveen <address@hidden>
Commit: Magnar Sveen <address@hidden>
Merge pull request #125 from wasamasa/feature-some
Add `-some`
---
README.md | 13 +++++++++++++
dash.el | 22 ++++++++++++++++++++++
dev/examples.el | 5 +++++
3 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
index 91f0799..8cac2de 100644
--- a/README.md
+++ b/README.md
@@ -180,6 +180,7 @@ Other list functions not fit to be classified elsewhere.
* [-table](#-table-fn-rest-lists) `(fn &rest lists)`
* [-table-flat](#-table-flat-fn-rest-lists) `(fn &rest lists)`
* [-first](#-first-pred-list) `(pred list)`
+* [-some](#-some-pred-list) `(pred list)`
* [-last](#-last-pred-list) `(pred list)`
* [-first-item](#-first-item-list) `(list)`
* [-last-item](#-last-item-list) `(list)`
@@ -1409,6 +1410,18 @@ Alias: `-find`
(--first (> it 2) '(1 2 3)) ;; => 3
```
+#### -some `(pred list)`
+
+Return (`pred` x) for the first `list` item where (`pred` x) is non-nil, else
nil.
+
+Alias: `-any`
+
+```el
+(-some 'even? '(1 2 3)) ;; => t
+(--some (member 'foo it) '((foo bar) (baz))) ;; => '(foo bar)
+(--some (plist-get it :bar) '((:foo 1 :bar 2) (:baz 3))) ;; => 2
+```
+
#### -last `(pred list)`
Return the last x in `list` where (`pred` x) is non-nil, else nil.
diff --git a/dash.el b/dash.el
index 60596f4..d3721e3 100644
--- a/dash.el
+++ b/dash.el
@@ -391,6 +391,24 @@ Alias: `-find'"
(defalias '-find '-first)
(defalias '--find '--first)
+(defmacro --some (form list)
+ "Anaphoric form of `-some'."
+ (declare (debug (form form)))
+ (let ((n (make-symbol "needle")))
+ `(let (,n)
+ (--each-while ,list (not ,n)
+ (setq ,n ,form))
+ ,n)))
+
+(defun -some (pred list)
+ "Return (PRED x) for the first LIST item where (PRED x) is non-nil, else nil.
+
+Alias: `-any'"
+ (--some (funcall pred it) list))
+
+(defalias '-any '-some)
+(defalias '--any '--some)
+
(defmacro --last (form list)
"Anaphoric form of `-last'."
(declare (debug (form form)))
@@ -1991,6 +2009,10 @@ structure such as plist or alist."
"--first"
"-find"
"--find"
+ "-some"
+ "--some"
+ "-any"
+ "--any"
"-last"
"--last"
"-first-item"
diff --git a/dev/examples.el b/dev/examples.el
index 79ac244..40e177c 100644
--- a/dev/examples.el
+++ b/dev/examples.el
@@ -546,6 +546,11 @@ new list."
(-first 'even? '(1 3 5)) => nil
(--first (> it 2) '(1 2 3)) => 3)
+ (defexamples -some
+ (-some 'even? '(1 2 3)) => t
+ (--some (member 'foo it) '((foo bar) (baz))) => '(foo bar)
+ (--some (plist-get it :bar) '((:foo 1 :bar 2) (:baz 3))) => 2)
+
(defexamples -last
(-last 'even? '(1 2 3 4 5 6 3 3 3)) => 6
(-last 'even? '(1 3 7 5 9)) => nil
- [elpa] externals/dash 51a07b1 408/439: Merge pull request #127 from occidens/fixfn, (continued)
- [elpa] externals/dash 51a07b1 408/439: Merge pull request #127 from occidens/fixfn, Phillip Lord, 2015/08/04
- [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 <=
- [elpa] externals/dash 2cc124b 423/439: [-let] Generate better code when skipping conses, Phillip Lord, 2015/08/04
- [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