Re:MoonScript, a programmer friendly language that compiles ...
by rweichler on Tuesday May 30, 2017 @12:02AM
(#14442946)
Care to give an example?
[ Parent
| on HN ]
Re:MoonScript, a programmer friendly language that compiles ...
by anonymoushn on Tuesday May 30, 2017 @12:19AM
(#14442986)
The 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.
Re:MoonScript, a programmer friendly language that compiles ...
by rweichler on Tuesday May 30, 2017 @06:28AM
(#14444215)
Idk. 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.
Re:MoonScript, a programmer friendly language that compiles ...
by shalabhc on Tuesday May 30, 2017 @06:48AM
(#14444303)
There 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.
Re:MoonScript, a programmer friendly language that compiles ...
by anonymoushn on Tuesday May 30, 2017 @06:47AM
(#14444298)
Over 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.