Emacs Lisp: Sequence Functions
Here are functions that work on Sequence type.
Convert or Join Sequence
Sequence Functions
These functions work on any Sequence Type .
Those starting with “seq-” are new in
Emacs 25 (Released 2016-09)
.
They are from “seq.el”, and the file is loaded when emacs starts. You may want to explicitly declare (require 'seq)
.
Some of these provide new functionalities, some gives a unified interface to old functions.
copy-sequence
reverse
nreverse
sort
seq-elt
(same aselt
)seq-length
(same aslength
)seqp
(same assequencep
)
seq-drop
seq-take
seq-take-while
seq-drop-while
seq-filter
seq-remove
seq-uniq
seq-subseq
seq-do
seq-doseq
seq-map
seq-mapn
seq-min
seq-max
seq-reduce
seq-some
seq-every-p
;; demo of seq-some (seq-some (lambda (x) (eq 5 x)) [4 5 6]) ;; t
seq-find
seq-contains
seq-position
seq-count
seq-empty-p
seq-sort
seq-concatenate
seq-mapcat
seq-partition
seq-intersection
seq-difference
seq-group-by
seq-into
Sequence Binding
seq-let
seq-setq
Delete Elements in Sequence
remove
-
(remove x sequence)
- Remove all x in sequence.
- The original sequence is unchanged.
- Returns a new sequence.
- Comparison is done with
equal
. [see Emacs Lisp: Test Equality]
(setq xx '(3 4 5)) (remove 4 xx) ;; (3 5) xx ; (3 4 5)
delete
-
(delete x sequence)
- Remove all x in sequence.
- The original sequence is destroyed if it's a list.
- Returns a new sequence.
- Comparison is done with
equal
. [see Emacs Lisp: Test Equality]
(setq xx '(3 4 5)) ;; always set result to the same var. because original is usually destroyed (setq xx (delete 4 xx)) ; (3 5) ;; on vector (setq xx [3 4 5]) (setq xx (delete 4 xx)) ; [3 5]
Misc
nconc
Reference
Lisp Data Structure
List
- Cons Pair
- Quote and Dot Notation
- Proper List
- List
- Create List
- List, Get Elements
- Modify List
- Check Element Exist in List
- Remove Elements in List
- Backquote Reader Macro