问题
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.
回答1:
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).
回答2:
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
来源:https://stackoverflow.com/questions/1408974/elisp-list-contains-a-value