4 ms·
Can't agree with that. Having used both Lua and Moonscript quite a bit I think Moonscript is what most dynamic scripting languages should be. Simple, succinct
by honewatson 9y ago
Can't agree with that. Having used both Lua and Moonscript quite a bit I think Moonscript is what most dynamic scripting languages should be. Simple, succinct and does what you need for a scripting language.
I really enjoy using it.
- rweichler 9y agoCare to give an example?
- anonymoushn 9y agoThe list comprehensions are really great. Most of the time when I'm writing Lua I can't be bothered to write exactly what Moonscript outputs for a list comprehension because it's noisy, but it's what I really would write if I cared about tiny amounts of performance.
- rweichler 9y agoIdk. Still not sold. You can do list comprehensions in regular Lua with something like this: function listcomp(t, f) local r = {} for k,v in pairs(t) do r[k] = v end return r end And then, your Lua code would be like: listcomp({1, 2, 3, 4}, function(k, v) return v*2 end) Which would be the equivalent to this in MoonScript: [v*2 for k,v in pairs({1, 2, 3 ,4})] I dunno. Just seems like a wash to me. And then you think about the extra compile step to run MoonScript, and the potential performance hits, and I'm just turned off completely from it.
- anonymoushn 9y agoOver here it generated local b do local _accum_0 = { } local _len_0 = 1 for k, v in pairs({ 1, 2, 3, 4 }) do _accum_0[_len_0] = v * 2 _len_0 = _len_0 + 1 end b = _accum_0 end It did a pretty good job. Unlike your code, it doesn't have any function calls, and unlike the code I would probably write, it doesn't use the # operator.
- shalabhc 9y agoThere are no potential performance hits. In particular the code generated for list comprehensions would be faster than your example because there is no extra function call per item.