Una List en Elm es una colección inmutable de cero o más valores del mismo tipo.
Las listas se pueden definir así:
empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]
La forma más común de añadir un elemento a una lista es mediante el operador :: (cons):
twoToFour = [ 2, 3, 4 ]
oneToFour = 1 :: twoToFour --> [ 1, 2, 3, 4 ]
Las listas se manipulan con funciones y operadores definidos en el módulo List o mediante coincidencia de patrones
describe : List String -> String
describe list =
case list of
[] ->
"Empty list"
[ "hello" ] ->
"Singleton list with: hello"
x :: xs ->
"Non-empty list with head: " ++ x
describe [] --> "Empty list"
describe [ "hello" ] --> "Singleton list with: hello"
describe [ "hello", "world" ] --> "Non-empty list with head: hello"
En este ejercicio vas a escribir código para llevar un registro de los lenguajes de programación que quieres aprender en Exercism. Tienes seis tareas, y todas ellas consisten en trabajar con arrays.
Para llevar un registro de los lenguajes que quieres aprender, necesitarás crear un array nuevo.
Define la constante newList, que contiene un array nuevo y vacío.
newList
--> []
Actualmente tienes un papel en el que has anotado los lenguajes que quieres aprender: Elm, Clojure y Haskell.
Define la constante existingList para representar ese array.
existingList
--> [ "Elm", "Clojure", "Haskell" ]
A medida que exploras Exercism y encuentras lenguajes más interesantes, quieres añadirlos a tu array.
Implementa la función addLanguage para añadir un lenguaje nuevo al principio de tu array.
addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
--> [ "TypeScript", "JavaScript", "CoffeeScript" ]
Contar los lenguajes a mano resulta incómodo.
Implementa la función countLanguages para contar el número de lenguajes que hay en tu array.
countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
--> 4
¡En algún momento te das cuenta de que tu array está ordenado al revés!
Implementa la función reverseList para invertir tu array.
reverseList [ "Prolog", "C", "Idris", "Assembly" ]
--> [ "Assembly", "Idris", "C", "Prolog" ]
Aunque te encantan todos los lenguajes, Elm ocupa un lugar especial en tu corazón. Por eso, un array de lenguajes te hace mucha ilusión si:
Implementa la función excitingList para comprobar si un array de lenguajes te hace ilusión:
excitingList [ "Nim", "Elm" ]
--> True
Regístrate en Exercism para aprender y dominar Elm con 28 conceptos110 ejercicios y mentoría humana real, todo gratis.