Kurzusok
/
Elm
Elm
/
Feladatok
/
Varázslótanonc
Varázslótanonc

Varázslótanonc

Tanulófeladat

Bevezetés

Tömbök

Az Array az Elmben egy gyors, megváltoztathatatlan gyűjtemény, amely nulla vagy több azonos típusú értéket tárol.

A List-tel ellentétben, amely alapértelmezés szerint importált, az Array modult explicit módon importálni kell az import Array utasítással vagy hasonlóval.

A tömböket a következőképpen definiálhatod:

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" ]

A tömbökhöz az Array.push függvénnyel adhatsz hozzá elemeket:

twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]

Egy tömb elemének lekéréséhez az Array.get függvényt használhatod:

sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6

Egy tömb elemét az Array.set függvénnyel állíthatod be:

sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]

A tömböket az Array modulban definiált függvényekkel kezelheted.

oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2

Utasítások

Elyse, a leendő varázsló szeretné gyakorolni az alapokat. Van egy pakli kártyája, amit szeretne manipulálni.

Hogy egy kicsit könnyebb legyen a dolga, csak az 1-től 10-ig terjedő kártyákat használja.

1. Kártya lekérése a pakliból

Készítsd el a getCard függvényt, amely visszaadja a megadott pakli index pozícióján lévő kártyát. Ha az index nincs benne a pakliban, add vissza a Nothing értéket.

getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
    --> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
    --> Nothing

2. Kártya megváltoztatása a pakliban

Készítsd el a setCard függvényt, amely visszaad egy paklit, amiben az index pozícióján lévő kártya a megadott új kártyára változott. Ha az index nincs benne a pakliban, add vissza az eredeti paklit.

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. Kártya hozzáadása a paklihoz

Készítsd el az addCard függvényt, amely visszaad egy paklit az új kártyával kiegészítve.

addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
    --> Array.fromList [ 5, 9, 7, 1, 8 ]

4. Kártya eltávolítása a pakliból

Készítsd el a removeCard függvényt, amely visszaad egy paklit, amiből az index pozícióján lévő kártya el van távolítva. Ha a megadott index nem érvényes index a pakliban, add vissza az eredeti paklit.

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. A pakliban lévő páros kártyák megszámolása

Készítsd el az evenCardCount függvényt, amely megszámolja a pakliban lévő páros kártyákat.

evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
    --> 4
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Elm Exercism

Készen állsz elkezdeni a(z) Varázslótanonc feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elm nyelvet 28 fogalom110 feladat segítségével, valódi emberi mentorálással, mindez ingyen.