Elisp: Sequence Functions
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
seqp
→ return true if it's a sequence.
Length
seq-length
→ number of items.seq-empty-p
→ check is empty.
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: Sequence Type
- Elisp: Sequence Functions
- Elisp: Sequence, Take, Drop, Slice
- Elisp: Map to Sequence
- Elisp: Foreach (Side-Effect)
- Elisp: Sequence Iteration, Conditional Exit
- Elisp: Sequence Filter
- Elisp: Sequence Map Insert
- Elisp: Sequence Iteration
- Elisp: Sequence Find
- Elisp: Sequence, Sort, Reverse
- Elisp: Sequence Join, Convert
- Elisp: Sequence Union, Intersection, Difference
- Elisp: More Sequence Functions
- Elisp: Destructure Binding