Аналог lru_cache из functools на PascalABC.NET

Здравствуйте! Подскажите, есть ли в PascalABC.NET аналог lru_cache (list recently used) из модуля functools языка Python, который “запоминает” недавно использованные значения функций?

В смысле, игрушка для мемоизации? Нет.

1 симпатия

Функцию которая создаёт обёртку с кэшем для любой другой функции не получится сделать, потому что статическая типизация.

Но объект который используется для самого кэша, то есть хеш-таблица для поиска значения по ключу, это Dictionary<TKey, TValue>.

Для значений ещё можно использовать System.WeakReference, чтоб автоматически удалять объекты которые давно не использовались, если оперативки не хватает. Но тогда надо будет по-умному удалять и соответствующие ключи из словаря.
Наверное ещё 1 классом-обёрткой значения, с методом Finalize, удаляющим свой ключ из словаря.

1 симпатия

Я изучаю шарп больше года, и понимаю, что тут написано. Но человек, который задал подобный вопрос, вряд ли имеет такие же познания в .NET

И это отличная причина, чтобы оставить в покое сию “крамольную” мысль.

И это отличная причина чтоб ТС пользовался гуглом, а не просто ждал всех ответов.

1 симпатия

Все ответы уже даны в первом сообщении :slight_smile:

 Институт математики, механики и компьютерных наук ЮФУ, 2005–2021
Администрация форума: В.Н. Брагилевский, С.С. Михалкович, А.М. Пеленицын
Yandex.Metrica