6 ms·
Jesus, what a disgustingly clever hack! I wonder if we could use a similar mechanism to finally add a "continue" to Lua.
by ufo 5y ago
Jesus, what a disgustingly clever hack!
I wonder if we could use a similar mechanism to finally add a "continue" to Lua.
- klyrs 5y agoIt's truly a thing of beauty. I can't wait to test what happens when you put labels or gotos in expressions...
- tedunangst 5y agoYeah, you can patch calls to continue() to instead be jumps.
- daurnimator 5y agoLua has `goto` since 5.2; you don't need a continue keyword. e.g. for z=1,10 do for y=1,10 do for x=1,10 do if x^2 + y^2 == z^2 then print('found a Pythagorean triple:', x, y, z) print('now trying next z...') goto zcontinue end end end ::zcontinue:: end
- ufo 5y agoI know we can do that, but I still want continue ;)
- OJFord 5y agoThat's nicer than continue really (as someone who doesn't know and has never written Lua) - works for whichever level of nested loops like that that you want, and allows/somewhat forces you to come up with a name that might be clearer what it's for.
- jstanley 5y agoIn Perl, "next" can take a label: LOOP: while (foo()) { while (bar()) { if (baz()) { next LOOP; } } }
- Viliam1234 5y agoSimilar in Java (it is called "break", and the optional label is written the same way), although I'd guess most Java developers don't know about it.