Para remover elementos de una lista se usa la función remove:
> (setq una-lista '(15 33 "edad" 7/8))
(15 33 "hoy es domingo" 7/8)
> una-lista
(15 33 "hoy es domingo" 7/8)
> (remove 33 una-lista)
(15 "hoy es domingo" 7/8)
Se ha removido 33 de la lista. Sin embargo la función remove es no destructiva, por lo que no se ha modificado una-lista.
> una-lista
(15 33 "hoy es domingo" 7/8)
Por lo tanto deberíamos guardar la lista devuelta por la función:
> (setq una-lista (remove 33 una-lista))
(15 "hoy es domingo" 7/8)
> una-lista
(15 "hoy es domingo" 7/8)
Para agregar elementos se puede usar la función cons:
> (setq una-lista (cons "mañana es lunes..." una-lista))
("mañana es lunes..." 15 "hoy es domingo" 7/8)
> una-lista
("mañana es lunes..." 15 "hoy es domingo" 7/8)
Otra manera de agregar elementos es usando push. Una lista se puede tratar como una estructura de pila LIFO. Antes de poner cualquier valor, la lista debe tener algún elemento o estar vacía (tener el valor nil).
Primero me aseguro de crear una lista vacía:
> (setf una-lista nil)
NIL
> (push "hola" una-lista)
("hola")
> (push 23 una-lista)
(23 "hola")
> (push () una-lista)
(NIL 23 "hola")
> (push "te amo Maria" una-lista)
("te amo Maria" NIL 23 "hola")
> (push 8.5 una-lista)
(8.5 "te amo Maria" NIL 23 "hola")
Para sacar usamos pop:
> (pop una-lista)
8.5
Pero los valores que quitamos se perderían de no ser asignados:
> (setq hermosa (pop una-lista))
"te amo Maria"
> hermosa
"te amo Maria"
No hay comentarios:
Publicar un comentario