Треки
/
Kotlin
Kotlin
/
Вправи
/
Операції з масивом
Операції з масивом

Операції з масивом

Складна

Вказівки

Реалізуйте базові операції з масивами.

У функціональних мовах такі операції з масивами, як length, map і reduce, трапляються дуже часто. Реалізуйте низку базових операцій з масивами, не використовуючи наявні функції.

Точна кількість і назви операцій, які потрібно реалізувати, залежать від конкретного треку, щоб уникнути конфліктів з наявними назвами, але загалом потрібно реалізувати такі операції:

  • append (отримавши два масиви, додати всі елементи другого масиву в кінець першого);
  • concatenate (отримавши низку масивів, поєднати всі елементи з усіх масивів в один плаский масив);
  • filter (отримавши предикат і масив, повернути масив усіх елементів, для яких predicate(item) є правдою);
  • length (отримавши масив, повернути загальну кількість елементів у ньому);
  • map (отримавши функцію і масив, повернути масив результатів застосування function(item) до всіх елементів);
  • foldl (отримавши функцію, масив і початковий акумулятор, згорнути (звести) кожен елемент у акумулятор зліва);
  • foldr (отримавши функцію, масив і початковий акумулятор, згорнути (звести) кожен елемент у акумулятор справа);
  • reverse (отримавши масив, повернути масив з усіма початковими елементами, але у зворотному порядку).

Зауважте, порядок, у якому аргументи передаються до функцій згортання (foldl, foldr), має значення.

Інструкції, специфічні для треку

Тести цієї вправи вимагають використання розширень, механізму, який дає змогу додавати нову функціональність до наявного класу, код якого ми безпосередньо не контролюємо, без потреби створювати підклас. Щоб дізнатися більше про те, як розширення реалізовано в Kotlin, загляньмо до офіційної документації.

Методи customFoldLeft і customFoldRight - це функції «згортки», концепція, добре відома у світі функціонального програмування, але куди менш відома в обʼєктно-орієнтованому. Якщо потрібно більше довідкової інформації, загляньмо на цю сторінку про згортку.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Kotlin Exercism

Час розпочати Операції з масивом?

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

Глибоке занурення у Операції з масивом!

Насолоджуйтеся практичним вступом до рекурсії, розгляньте імперативні та функціональні альтернативи «Операціям з масивом» і зануртеся в хвостову рекурсію та функції-акумулятори.