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

Get nth

seq-elt

get nth element. (index start at 0)

similar to elt

seq-first

get the first element

Remove nth

seq-remove-at-position

(seq-remove-at-position SEQUENCE N)

remove item at index n.

(seq-remove-at-position [3 4 5] 1)
;; [3 5]

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]]

Reference

Elisp, sequence functions

Elisp, Vector