Emacs-Lispのリスト用関数

よく知られたmapcar以外にもリスト操作のための関数がないか探したら、seq-系の関数が該当するようだ。

www.gnu.org

(seq-elt sequence index)
(seq-length sequence)
(seqp sequence)
(seq-drop sequence n)
(seq-take sequence n)
(seq-take-while predicate sequence)
(seq-drop-while predicate sequence)
(seq-do function sequence)
(seq-map function sequence)
(seq-map-indexed function sequence)
(seq-mapn function &rest sequences)
(seq-remove predicate sequence)
(seq-reduce function sequence initial-value)
(seq-some predicate sequence)
(seq-find predicate sequence &optional default)
(seq-every-p predicate sequence)
(seq-empty-p sequence)
(seq-count predicate sequence)
(seq-sort function sequence)
(seq-sort-by function predicate sequence)
(seq-set-equal-p sequence1 sequence2 &optional testfn)
(seq-position sequence elt &optional function)
(seq-uniq sequence &optional function)
(seq-subseq sequence start &optional end)
(seq-concatenate type &rest sequences)
(seq-mapcat function sequence &optional type)
(seq-partition sequence n)
(seq-intersection sequence1 sequence2 &optional function)
(seq-difference sequence1 sequence2 &optional function)
(seq-group-by function sequence)
(seq-into sequence type)
(seq-min sequence)
(seq-max sequence)
(seq-doseq (var sequence) body...)
(seq-let arguments sequence body...)
(seq-random-elt sequence)

たいていのことは出来そうだ。