Um Array em Elm é uma coleção imutável e rápida de zero ou mais valores do mesmo tipo.
Diferente de List, que é um import padrão, o módulo Array precisa ser importado explicitamente, usando import Array ou algo parecido.
Arrays podem ser definidos assim:
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" ]
Elementos são adicionados a um Array usando Array.push:
twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]
Um elemento em um Array é obtido usando Array.get:
sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6
Um elemento em um Array é definido usando Array.set:
sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]
Arrays são manipulados por funções definidas no módulo Array.
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
Como uma mágica em formação, Elyse precisa praticar alguns fundamentos. Ela tem um baralho de cartas que quer manipular.
Para facilitar um pouco as coisas, ela usa apenas as cartas de 1 a 10.
Implemente a função getCard que retorna a carta na posição index do baralho fornecido. Se o índice não existir no baralho, retorne Nothing.
getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Nothing
Implemente a função setCard que retorna um baralho com a carta na posição index trocada pela nova carta fornecida.
Se o index não existir no baralho, retorne o baralho 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 ]
Implemente a função addCard que retorna um baralho com a nova carta adicionada.
addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
--> Array.fromList [ 5, 9, 7, 1, 8 ]
Implemente a função removeCard que retorna um baralho com a carta na posição index removida.
Se o index fornecido não for um índice válido no baralho, retorne o baralho 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 ]
Implemente a função evenCardCount que conta o número de cartas pares no baralho.
evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
--> 4
Crie sua conta no Exercism para aprender e dominar Elm com 28 conceitos110 exercícios e mentoria humana de verdade, tudo de graça.