Треки
/
Clojure
Clojure
/
Вправи
/
Треки на треках на треках
Треки на треках на треках

Треки на треках на треках

Навчальна вправа

Вступ

У Clojure списки є колекціями, так само як списки в інших мовах. Як і в інших мовах сімʼї Лісп, Clojure використовує круглі дужки, щоб записати списки.

Список у Clojure можна створити одним із двох способів. Функція list створює список, або ж до літерального списку можна застосувати quote.

Списки особливі тим, що Clojure трактує їх як виклики. Виклик має починатися з оператора, яким зазвичай є функція. Решту елементів списку вважають операндами, тобто вони стають аргументами функції.

Саме через особливе ставлення Clojure до списків ми не можемо створити літерал списку безпосередньо. Якщо взяти список у лапки за допомогою quote або його скорочення ', це означає, що список не слід обчислювати.

На відміну від деяких сучасних мов, списки в Clojure гетерогенні, тобто всередині вони можуть містити елементи різних типів, наприклад '(2 "a" "b" 3). На відміну від інших Ліспів, порожній список у Clojure є правдивим і не дорівнює nil або false.

Вказівки

У цій вправі ми будемо писати код, щоб опрацьовувати масив мов програмування, які плануємо практикувати на платформі Exercism.

На нас чекає шість завдань.

1. Створіть новий масив

Перш ніж додавати мови, потрібно спочатку створити новий масив. Визначте функцію, яка повертає порожній масив.

(new-list)
;; => ()

2. Додайте нову мову до масиву

Коли ми досліджуємо Exercism і знаходимо мови, які хочемо вивчати, потрібно мати змогу додавати їх до нашого масиву. Визначте функцію, яка додає нову мову на початок масиву.

(add-language '("Clojurescript") "JavaScript")
;; => '("JavaScript" "Clojurescript")

3. Перевірте мову, додану останньою

Нам захочеться швидко перевірити, яку мову ми щойно додали. Визначте функцію, яка повертає першу мову з масиву.

(first-language '("Haskell" "Python"))
;; => "Haskell"

4. Видаліть першу мову з масиву

Іноді ми змінюємо думку щодо мови, яку щойно додали. Визначте функцію, яка видаляє першу мову з масиву.

(remove-language '("Common Lisp" "Racket" "Scheme"))
;; => '("Racket" "Scheme")

5. Порахуйте мови в масиві

Рахувати мови по одній незручно. Визначте функцію, яка рахує кількість мов у масиві.

(count-languages '("C#" "Racket" "Rust" "Ruby"))
;; => 4

6. Зберіть усе разом

Визначте функцію learning-list, у якій ми використаємо деякі з функцій, визначених вище.

  • Створіть порожній масив

  • Додайте 2 нові мови програмування до масиву.

    • «Clojure»
    • «Lisp»
  • Видаліть «Lisp» з масиву, бо на нього може не вистачити часу цього року, і він досить схожий на Clojure.

  • Додайте ще 2 мови програмування до масиву.

    • «Java»
    • «JavaScript»
  • Поверніть загальну кількість мов. Підказка: має бути 3.

(learning-list)
;; => 3
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Clojure Exercism

Час розпочати Треки на треках на треках?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Clojure, а також 12 концепцій105 вправ та справжнє наставництво від людей, і все це безкоштовно.