Interesting! I rather liked the part on closures, neat little hack, I feel the hacky nature makes them produce rather unreadable code (or at least real funky). Lua's closures are really nicely implemented, makes me actually prefer them to classes since in Lua it seems to be the other way around: classes are readable alright but you end up writing a lot of boilerplate code or having to use a library to do OOP.
These functions that take other functions as argument are commonly referred to as higher order functions and these form the basis for functional programming.