Список Elisp содержит значение
Как вы проверяете, в elisp, если список содержит значение? поэтому следующее возвращение t:
(contains 3 '(1 2 3))
но
(contains 5 '(1 2 3))
вернет нуль.
Ответы
Ответ 1
Вам нужна функция member
Например:
(member 3 '(1 2 3))
Он вернет хвост списка, чей автомобиль является элементом. Хотя это не строго t
, любое значение non-nil эквивалентно true для логической операции. Кроме того, member
использует equal
для проверки равенства, используйте memq
для более строгого равенства (используя eq
).
Ответ 2
ответ freiksenet хорош и идиоматичен. Если вы используете dash.el
, вы также можете вызвать функцию -contains?
, который выполняет точно то же самое - проверяет, содержит ли какой-либо список элемент:
(-contains? '(1 2 3) 2) ; t