Una List en Elm es una colección inmutable de cero o más valores del mismo tipo.
Las listas se pueden definir de la siguiente manera:
empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]
La forma más común de agregar 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 un array de lenguajes de programación que quieres aprender en Exercism. Tienes seis tareas, y todas tienen que ver con arrays.
Para llevar un registro de los lenguajes que quieres aprender, vas a necesitar crear un array nuevo.
Define la constante newList, que contenga un array nuevo y vacío.
newList
--> []
Por ahora tienes una hoja de papel donde anotaste los lenguajes que quieres aprender: Elm, Clojure y Haskell.
Define la constante existingList para representar este array.
existingList
--> [ "Elm", "Clojure", "Haskell" ]
A medida que exploras Exercism y encuentras lenguajes más interesantes, quieres agregarlos a tu array.
Implementa la función addLanguage para agregar un lenguaje nuevo al principio de tu array.
addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
--> [ "TypeScript", "JavaScript", "CoffeeScript" ]
Contar los lenguajes a mano es incómodo.
Implementa la función countLanguages para contar cuántos lenguajes hay en tu array.
countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
--> 4
En algún momento te das cuenta de que tu array en realidad 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 emociona de verdad si:
Implementa la función excitingList para verificar si un array de lenguajes es emocionante:
excitingList [ "Nim", "Elm" ]
--> True
Regístrate en Exercism para aprender y dominar Elm con 28 conceptos110 ejercicios y mentoría humana real, todo gratis.