- Why does Lua keep popping in so many random places?
- You're probably taking this course because of some application you care about - neovim, Wow Modding, Factorio soul stealing, etc.
- Lua probably is a means to an end - but if you'll allow me a quick explanation, it will greatly help your Lua learning and get you back to doing whatever you were originally trying to do.
- Seven types (type(...))
- Only false and nil are falsey values
- Scoping / block rules
- Locality and variable shadowing
- Do blocks
- How does “require” work?
- package.\* as well
- String / Table single argument functions
- Optional args
- Keyword args
- Variable args
- Important builtin functions
- `select`
- `ipairs`
- `pairs`
- These probably should be later, after discussing metatables:
- `rawset`
- `rawget`
- Defining custom iterators for for loops
- Coroutines in general
- Coroutines don’t require any new language features, just introduces a new language mechanism
- Re-uses existing module structure as well as functions and type information
- Standard library examples?
- Constructing your own standard library of common utilities
- Debug library usage and information
So cool that metatables and environments are also just tables
Weak tables
Fun stuff to implement in Lua:
- Default dictionary
- Readonly dictionary
Stuff to consider:
- Bringing up some differences in lua versions?
References:
- [http://thomaslauer.com/download/luarefv51.pdf](http://thomaslauer.com/download/luarefv51.pdf)
- [https://www.lua.org/manual/5.1/manual.html\#5.3](https://www.lua.org/manual/5.1/manual.html\#5.3)