20 lines
2.0 KiB
Markdown
20 lines
2.0 KiB
Markdown
|
|
# Домашнее задание №5
|
|||
|
|
|
|||
|
|
📗 В домашнем задании нужно реализовать функции `Map`, `Filter` и `Reduce`.
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
1. Реализуйте функцию `func Map(data []int, action func(int) int) []int`, которая принимает функцию `action` и срез данных `data`. Функция `Map` должна применить функцию `action` к каждому элементу среза `data` и вернуть новый срез с результатами.
|
|||
|
|
|
|||
|
|
2. Реализуйте функцию `func Filter(data []int, action func(int) bool) []int`, которая принимает функцию `action` и срез данных `data`. Функция `Filter` должна вернуть новый срез, содержащий только те элементы `data`, для которых функция `action` возвращает `true`.
|
|||
|
|
|
|||
|
|
3. Реализуйте функцию `func Reduce(data []int, initial int, action func(int, int) int) int`, которая принимает функцию `action` (функцию двух аргументов), срез данных `data` и начальное значение `initial`. Функция `Reduce` должна применить функцию `action` к каждому элементу `data` и начальному значению `initial`, накапливая результат.
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
📌 Для выполнения домашнего задания подготовлен шаблон кода и основные тесты, которую помогут проверить корректность реализации конвертации. Шаблона доступен по ссылке.
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
### Задание со звездочкой
|
|||
|
|
Выполнять необязательно, но если вы уже знакомы c дженериками в Go, то попробуйте реализовать обобщенные функции Map, Filter и Reduce.
|