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 es una importación predeterminada, el módulo Array debe importarse explícitamente, usando import Array o algo similar.
Los arrays se pueden definir 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 agregan 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 funciones definidas en el módulo Array.
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
Como futura maga, Elyse necesita practicar algunos fundamentos. Tiene una baraja de cartas que quiere manipular.
Para que sea 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 agregada.
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 proporcionado 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 la cantidad de cartas pares en 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.