Анонимные функции


-- Это пример из Вики

function makeaddfunc(x)
  -- Возвращает новую анонимную функцию, которая добавляет x к аргументу
  return function(y)
    -- Когда мы ссылаемся на переменную x, которая вне текущей области,
    -- и время жизни которой меньше, чем этой анонимной функции,
    -- Lua создаёт замыкание.
    return x + y
  end
end

plustwo = makeaddfunc(2)

print(plustwo(5)) -- Выводит 7