Translate

jueves, 11 de septiembre de 2025

Listas en Elm: Una Guía Práctica


En Elm, las listas son una de las estructuras de datos más utilizadas. Son colecciones inmutables de elementos del mismo tipo, y ofrecen muchas funciones para trabajar con ellas de forma segura y declarativa.

Podés crear una lista escribiendo los elementos entre corchetes [] separados por comas:


numeros : List Int

numeros = [1, 2, 3, 4, 5]


palabras : List String

palabras = ["hola", "elm", "listas"]


Una lista vacía se define como:


vacia : List Int

vacia = []


Acceder al primer elemento


List.head [1,2,3] -- Just 1


 Acceder al resto de la lista


List.tail [1,2,3] -- Just [2,3]


Largo de la lista


List.length [1,2,3] -- 3


Concatenar listas


[1,2] ++ [3,4] -- [1,2,3,4]


Aplica una función a cada elemento:


List.map (\x -> x * 2) [1,2,3] -- [2,4,6]


Filtra elementos que cumplen una condición:


List.filter (\x -> x > 2) [1,2,3,4] -- [3,4]


Reduce una lista a un único valor:


List.foldl (+) 0 [1,2,3,4] -- 10


Elm ofrece el operador :: para construir listas agregando un elemento al inicio:


1 :: [2,3,4] -- [1,2,3,4]


"hola" :: ["elm", "listas"] -- ["hola","elm","listas"]


Ejemplo completo :


numeros : List Int

numeros = [1, 2, 3, 4, 5]


pares : List Int

pares = List.filter (\n -> modBy 2 n == 0) numeros


cuadrados : List Int

cuadrados = List.map (\n -> n * n) 


main =

    Debug.log "Pares" pares

    |> Debug.log "Cuadrados" cuadrados


Las listas en Elm son poderosas, seguras y fáciles de manipular gracias a la librería estándar. Una vez que domines map, filter y fold, vas a poder expresar la mayoría de las transformaciones sobre colecciones de forma clara y concisa.