4 ms·
In case you skipped the article it contains this nugget: Take this example containing functional composition and higher-order functions: reduce(operator.add,
by markus2012 13y ago
In case you skipped the article it contains this nugget:
Take this example containing functional composition and higher-order functions:
reduce(operator.add, 0, map(function(x) return x^2 end, range(n)))
LUA converts this into 10 lines of assembler (2 jumps). Also, the LUA compiler is directly generating SSE.
Anyone have any good benchmarks comparing simple functional examples in LUA with Clojure or Common Lisp?
- justincormack 13y agoprobably not. this is the first time I have seen the outcome of optimising this type of code. I knew it was possible as it optimises my tail recursion.
- matthiasl 13y agoI know nothing about LUA syntax, so I also have no idea which part of this is new and which part is ordinary LUA. Is -- calculate sum(x for x^2 in 1..n) a comment or is it the output of a code transform?
- thelinked 13y ago"--" are comments in Lua, also, sorry for being pedantic but its Lua not LUA. Its Portuguese for moon.
- fab13n 13y agoThe code is perfectly standard plain Lua. The point is not about expressiveness; it's that while this code composes several higher-order functions, it's compiled into the kind of assembly code you'd expect from a fully optimized C routine.