Домашки

This commit is contained in:
2025-05-23 07:54:04 +03:00
parent 02d8430a3a
commit d7fae1b7c1
11 changed files with 285 additions and 0 deletions

20
homework/05.md Normal file
View File

@ -0,0 +1,20 @@
# Домашнее задание №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.