Come si controlla, in chiaro, se un elenco contiene un valore? quindi il seguente sarebbe tornato t:Elenco Elisp contiene un valore
(contains 3 '(1 2 3))
ma
(contains 5 '(1 2 3))
sarebbe tornato a zero.
Come si controlla, in chiaro, se un elenco contiene un valore? quindi il seguente sarebbe tornato t:Elenco Elisp contiene un valore
(contains 3 '(1 2 3))
ma
(contains 5 '(1 2 3))
sarebbe tornato a zero.
La funzione che vi serve è member
Ad esempio:
(member 3 '(1 2 3))
Si restituirà la coda della lista la cui auto è elemento. Mentre questo non è rigorosamente t
, any non-nil value is equivalent to true for a boolean operation. Inoltre, per verificare l'uguaglianza, member
uses equal
, utilizzare memq
per un'uguaglianza più rigorosa (utilizzando eq
).
freiksenet's answer è buono e idiomatico. Se si utilizza dash.el
, si potrebbe anche chiamare la funzione -contains?
, che fa esattamente la stessa controlli se qualche lista contiene un elemento:
(-contains? '(1 2 3) 2) ; t
Per ulteriori dettagli, vedere http://www.gnu.org/software/ emacs/emacs-lisp-intro/html_node/Lista-Processing.html –