How do you check, in elisp, if a list contains a value? so the following would return t:
(contains 3 '(1 2 3))
but
(contains 5 '(1 2 3))
would return nil.
How do you check, in elisp, if a list contains a value? so the following would return t:
(contains 3 '(1 2 3))
but
(contains 5 '(1 2 3))
would return nil.
The function you need is member
For example:
(member 3 '(1 2 3))
It will return the tail of list whose car is element. While this is not strictly t
, any non-nil value is equivalent to true for a boolean operation. Also, member
uses equal
to test for equality, use memq
for stricter equality (using eq
).
freiksenet's answer is good and idiomatic. If you are using dash.el
, you could also call function -contains?
, which does exactly the same—checks if some list contains an element:
(-contains? '(1 2 3) 2) ; t
And if you want to find an element by applying a function, there's a seq-find
:
(seq-find (lambda (val) (= 3 val))
'(1 2 3))
© 2022 - 2024 — McMap. All rights reserved.