Изменения
Перейти к навигации
Перейти к поиску
← Предыдущая правка
Следующая правка →
Модуль:RadicalWikifier
(посмотреть исходный код)
Версия от 21:36, 6 сентября 2023
115 байт добавлено
,
2 года назад
serialise
Строка 40:
Строка 40:
local function memoize (func)
local function memoize (func)
+
local function serialise_args (...)
+
local serialised = {}
+
for _, arg in ipairs {...} do
+
serialised [#serialised + 1] = serialise (arg)
+
end
+
return concat (serialised)
+
end
local memoized = {}
local memoized = {}
return function (...)
return function (...)
−
--
local key =
tostring (setmetatable ({...}, { __tostring = serialise }))
+
local key =
serialise_args
{...}
−
local key = concat
{...}
if not memoized [key] then
if not memoized [key] then
memoized [key] = { func (...) }
memoized [key] = { func (...) }
Александр Машин
Бюрократы
, steward,
Администраторы
1714
правок
Реклама:
Навигация
Персональные инструменты
русский
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Модуль
Комментарии
Варианты
Просмотры
Читать
Посмотреть код
История
Ещё
Поиск
Навигация
Заглавная страница
Форум
Текущие события
Свежие правки
Случайный документ
Статистика
Справка
Порталы
Новости
Инструменты
Служебные страницы
Версия для печати