Sean:
On Fri, 29 Jul 2022 at 04:10, Sean Conner <sean@conman.org> wrote:
If I'm doing this, then I would restructure the code to be:
-- existing code
local function foo()
for ...
for ...
for ...
if somecondition then
return
end
end
end
end
end
foo()
That's a nice usage of local functions....
I would do the same to make up for the lack of continue:
local function foo()
while somecondition do
...
if somecondition then
return foo() -- my "continue" is here
end
..
end
end
foo()
... and tail calls ( I use that a lot, but mainly as
structured-uber-gotos, to implement flow-diagram like things ). Color
me impressed, I'm too used to other languages to think of it, but I'm
gonna start calling it "the Connerian transform" and I know a couple
places where it would fit in my code.
Remember, Lua can have nested functions.
Although I routinely use them, with their upvalue capturing ability,
as callbacks I have never thought of that, local functions can treat
locals as a kind of "globals for this one invocation". I assume it is
because when I do that refactoring in, say, C++, I have to pass in-out
all the local values and normally I only have needs for long
breaks/continues/gotos in functions with tons of state. Last one looks
Lispy.
Francisco Olarte.