I was not aware of underscore.lua (and barely of underscore.js) a month ago when I set the direction for my functional programing component. I have looked at it some (and now own the Functional _javascript_ book). If I were to do an applications-level functional programming course, underscore.lua seems to provide a reasonable ibrary to build on. It has a bit different flavor, however, than programming with "cons" level recursive functions if one also wants to work at the lower level.
In that component of my class, I redeveloped a number of other examples, including versions of examples from chapters 1 and 2 of SICP. I also developed a small module of Lisp-style "linked"lists -- actually following the names I am accustomed to from Haskell. I was able to explore 3 different implementations of my six core primitives to illustrate different techniques in Lua.