List у Elm є незмінною колекцією, що містить нуль або більше значень одного типу.
Масиви можна визначити так:
empty = []
singleValue = [ 5 ]
threeValues = [ "a", "b", "c" ]
Найпоширеніший спосіб додати елемент до масиву полягає у використанні оператора :: (cons):
twoToFour = [ 2, 3, 4 ]
oneToFour = 1 :: twoToFour --> [ 1, 2, 3, 4 ]
Масивами керують за допомогою функцій та операторів, визначених у List модулі або за допомогою зіставлення зі зразком
describe : List String -> String
describe list =
case list of
[] ->
"Empty list"
[ "hello" ] ->
"Singleton list with: hello"
x :: xs ->
"Non-empty list with head: " ++ x
describe [] --> "Empty list"
describe [ "hello" ] --> "Singleton list with: hello"
describe [ "hello", "world" ] --> "Non-empty list with head: hello"
У цій вправі ми будемо писати код, щоб відстежувати масив мов програмування, які хочемо вивчити на Exercism. У нас шість завдань, і всі вони повʼязані з роботою з масивами.
Щоб відстежувати мови, які ми хочемо вивчити, нам потрібно створити новий масив.
Визначте константу newList, яка містить новий, порожній масив.
newList
--> []
Зараз у нас є аркуш паперу з переліком мов, які ми хочемо вивчити: Elm, Clojure і Haskell.
Визначте константу existingList, щоб представити цей масив.
existingList
--> [ "Elm", "Clojure", "Haskell" ]
Досліджуючи Exercism і знаходячи цікавіші мови, ми хочемо додати їх до свого масиву.
Реалізуйте функцію addLanguage, щоб додати нову мову на початок масиву.
addLanguage "TypeScript" [ "JavaScript", "CoffeeScript" ]
--> [ "TypeScript", "JavaScript", "CoffeeScript" ]
Порахувати мови вручну незручно.
Реалізуйте функцію countLanguages, щоб порахувати кількість мов у масиві.
countLanguages [ "C#", "Racket", "Rust", "Ruby" ]
--> 4
У якийсь момент ми усвідомлюємо, що наш масив насправді впорядковано у зворотному порядку!
Реалізуйте функцію reverseList, щоб обернути масив.
reverseList [ "Prolog", "C", "Idris", "Assembly" ]
--> [ "Assembly", "Idris", "C", "Prolog" ]
Хоча ми любимо всі мови, Elm посідає особливе місце в нашому серці. Тож масив мов викликає в нас справжнє захоплення, якщо:
Реалізуйте функцію excitingList, щоб перевірити, чи масив мов захопливий:
excitingList [ "Nim", "Elm" ]
--> True
Зареєструйтеся на Exercism, щоб вивчати й опановувати Elm, а також 28 концепцій110 вправ та справжнє наставництво від людей, і все це безкоштовно.