Array в Elm - це швидка незмінна колекція з нуля або більше значень одного типу.
На відміну від List, який є типовим імпортом, модуль Array потрібно імпортувати явно, за допомогою import Array або подібного.
Масиви можна визначати так:
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" ]
Елементи додають до масиву за допомогою Array.push:
twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]
Елемент масиву отримують за допомогою Array.get:
sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6
Елемент масиву встановлюють за допомогою Array.set:
sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]
Масивами керують функції, визначені в модулі Array.
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
Як майбутня чарівниця, Еліз має потренуватися в основах. У неї є колода карт, з якою вона хоче працювати.
Щоб було трохи легше, вона використовує лише карти від 1 до 10.
Реалізуйте функцію getCard, яка повертає карту на позиції index із заданої колоди. Якщо такого індексу немає в колоді, поверніть Nothing.
getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Nothing
Реалізуйте функцію setCard, яка повертає колоду, у якій карту на позиції index замінено на надану нову карту.
Якщо index немає в колоді, поверніть початкову колоду.
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 ]
Реалізуйте функцію addCard, яка повертає колоду з доданою новою картою.
addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
--> Array.fromList [ 5, 9, 7, 1, 8 ]
Реалізуйте функцію removeCard, яка повертає колоду, з якої видалено карту на позиції index.
Якщо наданий index не є допустимим індексом у колоді, поверніть початкову колоду.
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 ]
Реалізуйте функцію evenCardCount, яка підраховує кількість парних карт у колоді.
evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
--> 4
Зареєструйтеся на Exercism, щоб вивчати й опановувати Elm, а також 28 концепцій110 вправ та справжнє наставництво від людей, і все це безкоштовно.