Ahora bien, esto funciona muy bien:Elisp: Cómo eliminar un elemento de una lista de asociación con la cadena de clave
(setq al '((a . "1") (b . "2")))
(assq-delete-all 'a al)
Pero estoy usando cadenas como claves en mi aplicación:
(setq al '(("a" . "foo") ("b" . "bar")))
Y esto no puede hacer nada:
(assq-delete-all "a" al)
Creo que eso se debe a la instancia del objeto de cadena es diferente
012 (?)Entonces, ¿cómo debería eliminar un elemento con una clave de cadena de una lista de asociación? ¿O debería renunciar y utilizar símbolos como claves en su lugar, y convertirlos en cadenas cuando sea necesario?
Por cierto, debe asignar el resultado de 'assq-delete-all' a la variable aunque sea una operación destructiva:' (setq al (assq-delete-all 'a al)) '. ¿Qué sucede si la lista se vacía? El 'al' debe tomar el valor nulo: ¿cómo sucederá eso? ¿O qué pasa si elimina el primer elemento, los contras principales a los que 'al' apunta inicialmente?'al' se debe actualizar para saltar a la segunda celda. – Kaz