Открыть главное меню
Главная
Случайная
Войти
Настройки
Описание проекта «Информаторий»
Отказ от ответственности
in.wiki
Найти
Изменения
← Предыдущая правка
Следующая правка →
Модуль: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
правок