Dada una lista comoExcluyendo elementos duplicados en una lista de cadenas en elisp
(list "foo" "bar" nil "moo" "bar" "moo" nil "affe")
cómo iba a construir una nueva lista con las cadenas duplicadas eliminadas, así como los nil
s despojados, es decir
(list "foo" "bar" "moo" "affe")
Se debe conservar el orden de los elementos; es posible que la primera aparición de una cadena no se elimine.
Las listas con las que trato aquí son cortas, por lo que no es necesario utilizar nada como una tabla hash para la comprobación de exclusividad, aunque tampoco lo haría. Sin embargo, usar la funcionalidad cl
no es una opción viable.
Esto hace el truco bastante bien. Aprendí sobre 'miembro' ahora. ¿Existe también una función similar que permita especificar una función de comparación? – rafl
No, no que yo sepa. Sin embargo, sería bastante trivial escribir. – Sean
También hay 'memq' y' memql'. – phils