У Lua действительно хороший синтаксис вызова без скобок, который в сочетании с замыканиями функций позволяет мне написать следующее
local tag = 1
function test(obj)
return
function(str)
return
function (tbl)
tbl.objtag = tag
tbl.objname = str
return tbl
end
end
end
test (tag) "def"
{
}
test tag "def" --error
{
}
Однако, если я уберу круглые скобки (тег), это приведет к ошибке компиляции. Так почему же Lua допускает параметры без скобок (то есть «def»), а не параметры без скобок var (в данном случае таблица)?