Rutas
/
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 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

Instrucciones

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.

1. Obtener una carta de la 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 de 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. Añadir una carta a la baraja

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 ]

4. Quitar 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 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 ]

5. Contar el número de cartas pares de la baraja

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

¿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.