Логотип YeaHub

Мемоизация с очисткой кэша (Memoize with Cache Clearing)

2

JavaScriptPython

Функции

Т-Банк

Условие

Реализуйте функцию memoize(fn), которая возвращает мемоизированную версию fn. При повторном вызове с теми же аргументами результат берётся из кэша, а не пересчитывается заново. Аргументы могут быть любыми примитивами, включая undefined (в Python — None), причём вызов с явным undefined/None должен кэшироваться отдельно от вызова с другим значением того же аргумента. Возвращаемая функция должна иметь метод clearCache() (в Python — clear_cache()), который полностью очищает кэш: следующий вызов с любыми аргументами после этого пересчитывается заново.

Пример:

Вход: memoize(fn); fn.call(2, 3) -> 5 (вычисляется)
Вход: тот же вызов fn.call(2, 3) -> 5 (из кэша)
Вход: fn.clearCache(); fn.call(2, 3) -> 5 (вычисляется заново)
Loading...