Introducción a listas en [Scheme / DrRacket]

Existen muchas formas de usar las listas en racket y también de cómo declararlas pero los profesores de programación suelen empezar por una forma un poco complicada pero que te muestra el funcionamiento de las mismas para que sea más entendible el cómo manejarlas correctamente.

Listas en Racket 

Empecemos por ¿cómo declarar listas en scheme? crear una lista es fácil se usan dos formas ya sea creando paso por paso con "cons" o usando un "list"para crearla rápidamente.

; ===========================================================================
;Forma 1
(list 1 2 3 4 5)
;Forma 2
(cons 1 (cons 2 (cons 3 (cons 4 (cons 5 empty)))))
; ===========================================================================

Al ejecutar el programa arroja:

; ===========================================================================
(list 1 2 3 4 5)
(list 1 2 3 4 5)
; ===========================================================================

Ahora se tiene que resaltar que ambas formas son iguales pero, aunque usando el "list" parezca más corto se tiene que entender que con el "cons" y un poco de recursión te servirá para crear las listas desde cero con funciones más complejas.

Listas en Racket

EMPTY en scheme


Además ten en cuenta que las listas siempre terminan con un elemento [VACÍO] aunque no aparezca en pantalla, si no incluyes este elemento "vacío" al final de la lista cuando la armas con cons te arrojará un error.

las formas de usar el elemento de "vacío" en la página es: '()  - null - empty.  estos elementos son muy importantes el saber usarlos para poner condiciones de parada en un ciclo, Ejemplo:

; ===========================================================================

(empty? (list 1 2 3 4 5)) --> #false
;-----------------------------------
(empty? (list )) --> #true
;-----------------------------------
(null? (list 1 2 3 4 5)) --> #false
;-----------------------------------
(null? (list )) --> #true

; ===========================================================================



Como sacar elementos en un lista - Racket

Es importante saber como obtener cada elemento de una lista para poder hacer cualquier programa con listas:

Para sacar el primer elemento de una lista se usa:

; ===========================================================================
> (first (list 1 2 3))
  1
> (car (list 1 2 3))
  1
; ===========================================================================

Para sacar los elementos que estan despues del primero se usa:

; ===========================================================================
> (rest (list 1 2 3))
  (list 2 3)
> (cdr (list 1 2 3))
  (list 2 3)
; ===========================================================================



Existen formas de sacar elementos individuales de forma única para sacar solo el segundo elemento o el tercero solamente y así sucesivamente pero esto solamente es útil para hacer secuencias en cambio el first y el rest son muy útiles para los ciclos.

Ejemplo de ciclo en Racket

Las listas en Racket suelen tener muchos usos desde ciclos hasta árboles binarios así que es importante comprender bien cómo usarlas.

Llamado recursivo racket

Compartir en facebook twitter Google tumblr pinterest

Entradas similares

0 Comentarios