Un Array en Elm es una colección inmutable y rápida de cero o más valores del mismo tipo.
A diferencia de List, que se importa por defecto, el módulo Array debe importarse explícitamente, usando import Array o similar.
Los arrays pueden definirse de la siguiente manera:
import Array exposing (Array)
empty : Array Char
empty = Array.empty
singleValue = Array.fromList [ 5 ] --> Array Int
repeatSingleValue = Array.repeat 2 5 --> Array.fromList [ 5, 5 ]
initialiseFromIndex = Array.initialise 3 (\index -> index * 2) --> Array.fromList [ 0, 2, 4 ]
initialisefromList = Array.fromList [ "a", "b", "c" ] --> Array.fromList [ "a", "b", "c" ]
Los elementos se añaden a un array con Array.push:
twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]
Un elemento de un array se obtiene con Array.get:
sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6
Un elemento de un array se establece con Array.set:
sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]
Los arrays se manipulan con las funciones definidas en el módulo Array.
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
Como futura maga, Elyse necesita practicar algunos conceptos básicos. Tiene una baraja de cartas que quiere manipular.
Para que le resulte un poco más fácil, solo usa las cartas del 1 al 10.
Implementa la función getCard, que devuelve la carta en la posición index de la baraja dada. Si el índice no está en la baraja, devuelve Nothing.
getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Nothing
Implementa la función setCard, que devuelve una baraja con la carta en la posición index cambiada por la nueva carta proporcionada.
Si el index no está en la baraja, devuelve la baraja original.
setCard 2 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Array.fromList [ 1, 2, 6, 1 ]
setCard 6 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Array.fromList [ 1, 2, 4, 1 ]
Implementa la función addCard, que devuelve una baraja con la nueva carta añadida.
addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
--> Array.fromList [ 5, 9, 7, 1, 8 ]
Implementa la función removeCard, que devuelve una baraja con la carta en la posición index eliminada.
Si el index dado no es un índice válido en la baraja, devuelve la baraja original.
removeCard 2 ( Array.fromList [ 3, 2, 6, 4, 8 ] )
--> Array.fromList [ 3, 2, 4, 8 ]
removeCard 2 ( Array.fromList [ 3, 2 ] )
--> Array.fromList [ 3, 2 ]
Implementa la función evenCardCount, que cuenta el número de cartas pares de la baraja.
evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
--> 4
Regístrate en Exercism para aprender y dominar Elm con 28 conceptos110 ejercicios y mentoría humana real, todo gratis.