Код 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
  1. Храните словарь в замыкании.
  2. Ключ кеша: кортеж args.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.