From: Nicolas Petton Date: Sat, 5 Sep 2015 22:51:35 +0000 (+0200) Subject: Improve the semantic of map-some X-Git-Tag: emacs-25.0.90~1225^2~18 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/1b5fda5cbca96aec3e407bc9e4f8a16e48e7954c 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. --- diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el index 4e7d3b91b1..ea56efefe9 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 ca68004194..8693415a78 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