diff options
author | Nicolas Petton <nicolas@petton.fr> | 2016-06-18 09:32:18 +0200 |
---|---|---|
committer | Nicolas Petton <nicolas@petton.fr> | 2016-06-18 10:10:00 +0200 |
commit | 9726856f297522b1773e8aadaec34dd1a8e68a14 (patch) | |
tree | 083da055818463b396d6aed5deed1a61aa205180 /lisp/emacs-lisp | |
parent | 44eca25a4bd1513f08ca380c9f6722c21376ac9f (diff) | |
download | emacs-9726856f297522b1773e8aadaec34dd1a8e68a14.tar.gz emacs-9726856f297522b1773e8aadaec34dd1a8e68a14.tar.bz2 emacs-9726856f297522b1773e8aadaec34dd1a8e68a14.zip |
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.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/seq.el | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 166e886fd80..20610a7027d 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -4,7 +4,7 @@ ;; Author: Nicolas Petton <nicolas@petton.fr> ;; Keywords: sequences -;; Version: 2.16 +;; Version: 2.17 ;; Package: seq ;; Maintainer: emacs-devel@gnu.org @@ -117,6 +117,16 @@ Return SEQUENCE." (defalias 'seq-each #'seq-do) +(defun seq-do-indexed (function sequence) + "Apply FUNCTION to each element of SEQUENCE and return nil. +Unlike `seq-map', FUNCTION takes two arguments: the element of +the sequence, and its index within the sequence." + (let ((index 0)) + (seq-do (lambda (elt) + (funcall function elt index) + (setq index (1+ index))) + sequence))) + (cl-defgeneric seqp (sequence) "Return non-nil if SEQUENCE is a sequence, nil otherwise." (sequencep sequence)) |