Задача · Функции как значения · урок 10 из 12
Задача: накопитель
Напишите функцию func makeAccumulator() (func(int) int, func()). Она возвращает две функции с общей суммой. Первая — накопитель: прибавляет свой аргумент к сумме и возвращает новую сумму. Вторая сбрасывает сумму в 0. Сумма каждого накопителя начинается с 0.
add, reset := makeAccumulator(), затемadd(5)→5- следующий вызов
add(3)→8 - после
reset()вызовadd(4)→4
Ограничения: аргументы от -1000 до 1000 и могут быть отрицательными или нулём; у каждой пары функций, созданной отдельным вызовом makeAccumulator, своя сумма, и вызовы одной пары не меняют другую.
Не добавляйте лишних импортов, если в задаче это прямо не сказано.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.