Étant donné une liste telle queDécapage éléments en double dans une liste de chaînes dans elisp
(list "foo" "bar" nil "moo" "bar" "moo" nil "affe")
comment pourrais-je construire une nouvelle liste avec les chaînes en double enlevées, ainsi que les nil
s dépouillés, soit
(list "foo" "bar" "moo" "affe")
L'ordre des éléments doit être préservé - la première occurrence d'une chaîne ne peut pas être supprimée. Les listes que j'ai ici sont courtes, il n'y a donc pas besoin d'utiliser une table de hachage pour la vérification de l'unicité, bien que cela ne nuise certainement pas non plus. Cependant, l'utilisation de la fonctionnalité cl
n'est pas une option viable.
Cela fait assez bien l'affaire. J'ai appris sur 'member' maintenant. Y a-t-il aussi une fonction similaire qui permet de spécifier une fonction de comparaison? – rafl
Non, pas que je sache. Cependant, il serait plutôt trivial d'écrire. – Sean
Il y a aussi 'memq' et' memql'. – phils