diff options
author | Nicolas Petton <nicolas@petton.fr> | 2016-02-14 10:25:10 +0100 |
---|---|---|
committer | Nicolas Petton <nicolas@petton.fr> | 2016-02-14 10:25:10 +0100 |
commit | 30fe90fa3c8f814a30a5136089b995b0a26f5cd0 (patch) | |
tree | 6854e323308d2e2790119ffb47d9d97ec8a2a056 /lisp/emacs-lisp | |
parent | d9bf0c1c6a6ce90aa2edbb911fb58b26975d423b (diff) | |
download | emacs-30fe90fa3c8f814a30a5136089b995b0a26f5cd0.tar.gz emacs-30fe90fa3c8f814a30a5136089b995b0a26f5cd0.tar.bz2 emacs-30fe90fa3c8f814a30a5136089b995b0a26f5cd0.zip |
New function seq-map-indexed
* lisp/emacs-lisp/seq.el (seq-map-indexed): New function.
* test/lisp/emacs-lisp/seq-tests.el: Add tests for seq-map-indexed.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/seq.el | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 300fe5cd1fd..8b7b594f5e1 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -144,6 +144,18 @@ if positive or too small if negative)." sequence) (nreverse result))) +(defun seq-map-indexed (function sequence) + "Return the result of applying FUNCTION to each element of SEQUENCE. +Unlike `seq-map', FUNCTION takes two arguments: the element of +the sequence, and its index within the sequence." + (let ((index 0)) + (seq-map (lambda (elt) + (prog1 + (funcall function elt index) + (setq index (1+ index)))) + sequence))) + + ;; faster implementation for sequences (sequencep) (cl-defmethod seq-map (function (sequence sequence)) (mapcar function sequence)) |