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.

Était-ce utile?

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

La

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top