在Lua中,函数是作为"第一类值“来看待的。这表示函数可以存储在变量中,可以通过参数传递给其它函数,还可以作为其它函数的返回值。这种特性使语言具有了极大的灵活必。
为了给一个函数添加新的功能,程序可以重新定义该函数。
而在运行一些不受信任的代码时,可以先删除某些函数,从而创建一个安全的运行环境。
此外,Lua对“函数式编程(functional programming)"也提供了良好的支持。例如,允许在某些词法域(lexical scoping)中编写嵌套的函数;
Lua既可以调用以自身Lua语言编写的函数,又可以调用以C语言编写的函数。Lua所有的标准库是用C语言写的。标准库中包括对字符串的操作、table的操作、I/O、操作系统的功能调用、数学函数和调试函数。同样,应用程序也可以用C语言来定义其他函数。