Elisp: Sequence. Find, Count, Contains, Get Positions
Check If Item Exist
seq-contains-p-
(seq-contains-p SEQUENCE ELT &optional TESTFN)- return t if ELT exist by equality test TESTFN.
- TESTFN default to
equal
〔see Elisp: Equality Test〕
(seq-contains-p (vector 3 4 5) 5) ;; t ;; result is correct if checking nil exist in sequence (seq-contains-p (vector 3 nil 5) nil) ;; t seq-contains-
(seq-contains SEQUENCE ELT &optional TESTFN)This function is obsolete since Emacs 27 (date 2020) . Use
seq-contains-pinstead.- return the first element ELT by equality test TESTFN.
- TESTFN default to
equal
🛑 WARNING: this function cannot be used to check if a shortcut contains
nil. It'll always returnnil(seq-contains (vector 3 4 5) 4) ;; 4 ;; warning. cannot use this function to check if nil is in a sequence, because it always returns nil (seq-contains (vector 3 nil 5) nil) ;; nil seq-position-
(seq-position SEQUENCE ELT &optional TESTFN)return the position of the first occurrence, if exist.
(seq-position (vector 3 4 5 4) 4 ) ;; 1 seq-positions-
(seq-positions SEQUENCE ELT &optional TESTFN)check if item exist by equality test, and return a list of positions.
(seq-positions (vector 3 4 5 4) 4 ) ;; (1 3)
Find by Criterion, Count
seq-find-
(seq-find PRED SEQUENCE &optional DEFAULT)return first item a function returns true.
(seq-find (lambda (x) (string-match "p" x)) (vector "once" "upon" "a" "time")) ;; "upon" seq-count-
(seq-find PRED SEQUENCE &optional DEFAULT)return count where a function return true.
(seq-count (lambda (x) (string-match "e" x)) (vector "once" "upon" "a" "time")) ;; 2
Elisp, Check Element Exist
Elisp, sequence functions
- Elisp: Sequence Type
- Elisp: Sequence Functions
- Elisp: Sequence. First, Rest, Nth
- Elisp: Sequence. Take, Drop, Slice
- Elisp: Sequence. Iteration Guide
- Elisp: Sequence. Map
- Elisp: Sequence. Foreach (mapc, seq-do, seq-doseq)
- Elisp: Sequence. Find, Count, Contains, Get Positions
- Elisp: Sequence. some, every (conditional exit)
- Elisp: Reduce (Fold)
- Elisp: Sequence. Filter, Delete Duplicates
- Elisp: Sequence. Map to Insert or Remove
- Elisp: Sequence. Sort, Reverse
- Elisp: Sequence. Join, Convert
- Elisp: Sequence. Union, Intersection, Difference
- Elisp: Sequence. Split, Partition, Group by
- Elisp: Sequence. Min, Max, Random
- Elisp: Destructure Binding (seq-setq, seq-let)