Add seq-do-indexed

* lisp/emacs-lisp/seq.el (seq-do-indexed): New function.
* test/lisp/emacs-lisp/seq-tests.el: Add a unit test for seq-do-indexed.
This commit is contained in:
Nicolas Petton 2016-06-18 09:32:18 +02:00
parent 44eca25a4b
commit 9726856f29
2 changed files with 26 additions and 1 deletions

View file

@ -107,6 +107,21 @@ Evaluate BODY for each created sequence.
'(a b c d))
'((a 0) (b 1) (c 2) (d 3)))))
(ert-deftest test-seq-do-indexed ()
(let ((result nil))
(seq-do-indexed (lambda (elt i)
(add-to-list 'result (list elt i)))
nil)
(should (equal result nil)))
(with-test-sequences (seq '(4 5 6))
(let ((result nil))
(seq-do-indexed (lambda (elt i)
(add-to-list 'result (list elt i)))
seq)
(should (equal (seq-elt result 0) '(6 2)))
(should (equal (seq-elt result 1) '(5 1)))
(should (equal (seq-elt result 2) '(4 0))))))
(ert-deftest test-seq-filter ()
(with-test-sequences (seq '(6 7 8 9 10))
(should (equal (seq-filter #'test-sequences-evenp seq) '(6 8 10)))