La liste Elisp contient une valeur
Question
Comment vérifiez-vous, dans elisp, si une liste contient une valeur? donc ce qui suit retournerait t:
(contains 3 '(1 2 3))
mais
(contains 5 '(1 2 3))
reviendrait à zéro.
La solution
La fonction dont vous avez besoin est membre
Par exemple:
(member 3 '(1 2 3))
Il renverra la queue de la liste dont la voiture est élément . Bien que cela ne soit pas strictement t
, toute valeur non nulle est équivalente à true pour une opération booléenne . membre
utilise égal
pour tester l'égalité, utilisez memq
pour obtenir une égalité plus stricte (avec eq
).
Autres conseils
réponse de freiksenet est bonne et idiomatique. Si vous utilisez dash.el
, vous pouvez également appeler la fonction -contains?
, qui exactement la même chose et vérifie si une liste contient un élément:
(-contains? '(1 2 3) 2) ; t