emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 1b5fda5 4/4: Improve the semantic of map-some


From: Nicolas Petton
Subject: [Emacs-diffs] master 1b5fda5 4/4: Improve the semantic of map-some
Date: Sat, 05 Sep 2015 22:56:06 +0000

branch: master
commit 1b5fda5cbca96aec3e407bc9e4f8a16e48e7954c
Author: Nicolas Petton <address@hidden>
Commit: Nicolas Petton <address@hidden>

    Improve the semantic of map-some
    
    Update map-some to return the returned by the predicate, similar to
    seq-some.
    
    * lisp/emacs-lisp/map.el (map-some): Update the function to return the
      return value of the predicate.
    * test/automated/map-tests.el (test-map-some): Update the test to check
      for non-nil values only.
---
 lisp/emacs-lisp/map.el      |    5 +++--
 test/automated/map-tests.el |   26 ++++++++++++--------------
 2 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el
index 4e7d3b9..ea56efe 100644
--- a/lisp/emacs-lisp/map.el
+++ b/lisp/emacs-lisp/map.el
@@ -262,8 +262,9 @@ MAP can be a list, hash-table or array."
 MAP can be a list, hash-table or array."
   (catch 'map--break
     (map-apply (lambda (key value)
-                 (when (funcall pred key value)
-                   (throw 'map--break (cons key value))))
+                 (let ((result (funcall pred key value)))
+                   (when result
+                     (throw 'map--break result))))
                map)
     nil))
 
diff --git a/test/automated/map-tests.el b/test/automated/map-tests.el
index ca68004..8693415 100644
--- a/test/automated/map-tests.el
+++ b/test/automated/map-tests.el
@@ -262,21 +262,19 @@ Evaluate BODY for each created map.
 
 (ert-deftest test-map-some ()
   (with-maps-do map
-    (should (equal (map-some (lambda (k _v)
-                                 (eq 1 k))
-                               map)
-                   (cons 1 4)))
-    (should (not (map-some (lambda (k _v)
-                               (eq 'd k))
-                             map))))
+    (should (map-some (lambda (k _v)
+                        (eq 1 k))
+                      map))
+    (should-not (map-some (lambda (k _v)
+                            (eq 'd k))
+                          map)))
   (let ((vec [a b c]))
-    (should (equal (map-some (lambda (k _v)
-                                 (> k 1))
-                               vec)
-                   (cons 2 'c)))
-    (should (not (map-some (lambda (k _v)
-                               (> k 3))
-                             vec)))))
+    (should (map-some (lambda (k _v)
+                        (> k 1))
+                      vec))
+    (should-not (map-some (lambda (k _v)
+                            (> k 3))
+                          vec))))
 
 (ert-deftest test-map-every-p ()
   (with-maps-do map



reply via email to

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