Listas Vectores (LISP)

En la mayoría de los programas hay una relación de similitud entre listas y vectores, pero este no es el caso de lisp. Desde el punto de vista del concepto son elementos completamente diferentes.

Puede ser que de forma interna al ser interpretados a nivel más bajo el ordenador los traduzca a estructuras parecidas. desde el punto de vista de lenguajes imperativo no hay gran diferencia a fin de cuentas tanto las listas como los vectores no dejan de ser o una sucesión de casillas de memoria con el contenido ordenado de una serie de datos en el caso de poderse almacenar en un tipo de dato natural, o una sucesión de punteros que apuntan a las direcciones donde se almacenan estos datos.
Pero LISP es un lenguaje de alto nivel donde la abstracción y referenciar conceptos matemáticos reinan.
A continuación vamos a mostrar una serie de diferencias.

  1. Las listas son estructuras de datos dinámicas.
  2. Las listas son el objeto más importante en LISP, mientras que los vectores son un objeto que aporta unas ventajas en algunos puntos concretos. Aunque están bastante estandarizados los vectores en LISP, es posible que haya versiones antiguas que carezcan de este objeto.
  3. Los vectores tienen sus objetos referenciados por direciones de memoria que comienzan desde el 0 hasta que termina mientras que las listas tienen una estructura dividida en dos partes:
    1. car primer elemento de la lista
    2. cdr una lista con el resto de elementos de esta.
  4. Un vector se referencia de manera directa mientras que una lista se recorre de forma secuencial.
  5. Los vectores son más rápidos mientras que las listas consumen menos recursos
  6. Un vector es un átomo, a diferencia de una lista.