Elisp: Sequence Functions

By Xah Lee. Date: . Last updated: .

The Sequence library seq.el

seq.el is a library of functions on Sequence Type .

seq.el is new in Emacs 25 (Released 2016-09)

seq.el is loaded when emacs starts.

You may want to explicitly declare (require 'seq)

Most of the functions provide new functionalities, some gives a unified interface to old functions, such as length mapcar mapc elt

Is Sequence, Length, is Empty

Copy Sequence

copy-sequence

make a shallow copy. (if a element is a list, vector, record, they are not copied, but share reference with the original )

;; demo seq-copy is shallow copy

(setq xx [3 4 [5 6]])

(setq xnew (seq-copy xx ))
;; [3 4 [5 6]]

;; set 9 to the element 5 in xnew
(aset (aref xnew 2) 0 9)
;; 9

xnew
;; [3 4 [9 6]]

;; original is also changed
xx
[3 4 [9 6]]

Get nth

seq-elt

get nth element. (index start at 0)

Same as elt

seq-first

get the first element

Reference

Elisp, sequence functions

Elisp, Vector