Код Middle Функции и области видимости обновлено
Мемоизация через замыкание
Условие
Напишите memoize(fn): возвращает функцию с тем же поведением, которая кеширует результаты по позиционным аргументам (они хешируемые). Проверка: run(calls) оборачивает счётчик-функцию и возвращает [результаты, сколько раз реально вызвалась исходная функция]. Реализуйте только memoize.
Примеры
run([[1, 2], [1, 2], [2, 1]]) // [[3, 3, 3], 2]
run([]) // [[], 0]
run([[0, 0]]) // [[0], 1]
Как подойти
Подсказки: 2
- Храните словарь в замыкании.
- Ключ кеша: кортеж
args.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Функции и области видимости»
- Что такое *args и **kwargs
- Перекрытие встроенных имён
- Как передаются аргументы в функцию Python
- Где хранятся переменные замыкания
- Вызов с *args и **kwargs: разбор сигнатуры
- Когда вычисляется значение по умолчанию
- Где хранятся значения по умолчанию
- Сигнатура с / и *