функции)?
-- Closures and anonymous functions are ok:
function adder(x)
-- The returned function is created when adder is
-- called, and remembers the value of x:
return function (y) return x + y end
end
a1 = adder(9)
a2 = adder(36)
print(a1(16)) --> 25
print(a2(64)) --> 100
Первый пример, что в голову пришёл: В love2d функция love.run вызывается после конфигурирования фреймворка и возвращает функцию основного цикла игры, которую будет вызывать сам фреймворк
1. Итераторы: function iter(tbl) local i = #tbl + 1 return function() i = i - 1 if not tbl[i] then return end return i, tbl[i] end end local t = {"a", "b", "c"} for i, v in iter(t) do print(i, v) end > 3 c > 2 b > 1 a 2. Какие-нибудь сборщики значений: function collector() local res = {} return function(v) if not v then return unpack(res) end res[#res + 1] = v end end local cl = collector() cl(1) cl(2) cl(3) a, b, c = cl() print(a, b, c) >1 2 3 3. Ещё что-нибудь смешное и забавное.
Обсуждают сегодня