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