Tracks
/
Elm
Elm
/
Ejercicios
/
Aprendiz de mago
Aprendiz de mago

Aprendiz de mago

Ejercicio de aprendizaje

Introducción

Arrays

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

Instrucciones

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.

1. Recuperar una carta de una baraja

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

2. Cambiar una carta en la baraja

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 ]

3. Agregar una carta a la baraja

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 ]

4. Eliminar una carta de la baraja

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 ]

5. Contar la cantidad de cartas pares en la baraja

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
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Elm Exercism

¿Todo listo para empezar Aprendiz de mago?

Regístrate en Exercism para aprender y dominar Elm con 28 conceptos110 ejercicios y mentoría humana real, todo gratis.