[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dash 1fde888 407/426: Merge pull request #125 from wasa
From: |
Phillip Lord |
Subject: |
[elpa] externals/dash 1fde888 407/426: Merge pull request #125 from wasamasa/feature-some |
Date: |
Tue, 04 Aug 2015 19:39:15 +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 bbc1d9c 309/426: `--each-while` should also expose `it-index`, (continued)
- [elpa] externals/dash bbc1d9c 309/426: `--each-while` should also expose `it-index`, Phillip Lord, 2015/08/04
- [elpa] externals/dash 6bdcfa5 286/426: Add -split-on, -split-when, Phillip Lord, 2015/08/04
- [elpa] externals/dash bd85b7c 302/426: Make -zip support infinite (circular) lists, Phillip Lord, 2015/08/04
- [elpa] externals/dash 19fbc24 426/426: Fix anaphoric -spice-list macro, Phillip Lord, 2015/08/04
- [elpa] externals/dash 36b7f49 419/426: [-let] Reuse the ignore-place predicate, Phillip Lord, 2015/08/04
- [elpa] externals/dash 703bb59 297/426: Convert -zip to support variable-length arguments, Phillip Lord, 2015/08/04
- [elpa] externals/dash 3132ae0 314/426: Alias -tail to nthcdr, Phillip Lord, 2015/08/04
- [elpa] externals/dash 4098ea0 285/426: Merge pull request #74 from YoungFrog/dashfontifix, Phillip Lord, 2015/08/04
- [elpa] externals/dash 0c045f2 369/426: Highlight with el instead of cl, Phillip Lord, 2015/08/04
- [elpa] externals/dash 5086d24 293/426: Merge pull request #60 from rejeep/cask, Phillip Lord, 2015/08/04
- [elpa] externals/dash 1fde888 407/426: Merge pull request #125 from wasamasa/feature-some,
Phillip Lord <=
- [elpa] externals/dash 51a07b1 408/426: Merge pull request #127 from occidens/fixfn, Phillip Lord, 2015/08/04
- [elpa] externals/dash ffa37bf 425/426: Merge pull request #129 from holomorph/docs, Phillip Lord, 2015/08/04
- [elpa] externals/dash 63ec298 308/426: Merge pull request #92 from Fuco1/outer-product, Phillip Lord, 2015/08/04
- [elpa] externals/dash 00549e4 307/426: Add missing fontification keywords, Phillip Lord, 2015/08/04
- [elpa] externals/dash 9ebd172 421/426: [-let] Generate differently named symbols for temporary sources (makes, Phillip Lord, 2015/08/04
- [elpa] externals/dash c134705 377/426: Fix compile warning, Phillip Lord, 2015/08/04
- [elpa] externals/dash 40896b8 418/426: Fix the -let debug declaration, Phillip Lord, 2015/08/04
- [elpa] externals/dash 79c23bb 282/426: Merge pull request #70 from Fuco1/debug-decl, Phillip Lord, 2015/08/04
- [elpa] externals/dash 5d25ed2 275/426: Release 2.5.0, Phillip Lord, 2015/08/04
- [elpa] externals/dash 2cc124b 423/426: [-let] Generate better code when skipping conses, Phillip Lord, 2015/08/04