Saltar al contenido

¿Obteniendo los primeros n elementos de una lista en Common Lisp?

Si encuentras algo que no entiendes puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte lo mas rápido que podamos.

Solución:

Revisar la SUBSEQ función.

* (equal (subseq '(1 20 300) 0 2)
         '(1 20))
T

Puede que no sea inmediatamente obvio, pero en Lisp, la indexación comienza desde 0 y siempre toma intervalos medio abiertos, por lo que toma todos los elementos de la lista con índices en el intervalo[0, 2]. [02)

La respuesta anterior es, por supuesto, perfectamente correcta, pero tenga en cuenta que si está usando esto solo para comparar con otra lista, sería más eficiente para el rendimiento recorrer ambas listas en el mismo lugar, en lugar de crear una nueva lista solo para comparar. .

Por ejemplo, en el caso anterior, podría decir:

(every #'= '(1 20 300) '(1 20))
=> t

Amor,

Comentarios y valoraciones de la guía

Nos encantaría que puedieras mostrar este enunciado si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *