Lua makes it easy to load and unload code modules on the fly, to save memory or to provide program extensions.
The loadScript(<file>)
function will load a script from a the file and return a function that is the body of the script, as described in the previous section. So you could have the following Lua script file saved on the SD card:
You can load and use the above file with the following code:
So here we put together what we learned in the previous section. The body of the script is an anonymous function returned by loadScript
and stored in the variable chunk
. It returns the function f
when it is called. The local variable c
in the script is assigned to the first vararg passed to the call. Since a new closure is created every time we call chunk
, f1
and f2
have different closures with different values of c
.