Список Elisp содержит значение - PullRequest
35 голосов
/ 11 сентября 2009

Как проверить в elisp, есть ли в списке значение? поэтому следующее вернет t:

(contains 3 '(1 2 3))

но

(contains 5 '(1 2 3))

вернул бы ноль.

Ответы [ 2 ]

58 голосов
/ 11 сентября 2009

Вам нужна функция member

Например:

(member 3 '(1 2 3))

Возвращает список списка , чей автомобиль элемент . Хотя это не строго t, любое ненулевое значение эквивалентно true для логической операции . Кроме того, member использует equal для проверки на равенство, используйте memq для более строгого равенства (используя eq).

6 голосов
/ 03 августа 2014

ответ фрайксенета хорош и идиоматичен. Если вы используете dash.el, вы также можете вызвать функцию -contains?, которая делает то же самое - проверяет, содержит ли какой-либо список элемент:

(-contains? '(1 2 3) 2) ; t
...