Course Code:
luaadv
Duration:
14 hours
Prerequisites:
Basic knowledge of the Lua programming language
Overview:
This is an advanced course on Lua, where basic knowledge of the programming language is already assumed. Therefore, this course gives the participant a more profound understanding of Lua internals and the "why" behind the used Lua idioms.
These advanced topics are demonstrated by plenty of examples and in-class exercises.
Course Outline:
Advanced tables
- Tables for queues and stacks
- Tables describing graphs
- Matrices as tables
- Linked lists as tables
- String buffers
Metatables through examples
- Proxies
- Readonly
- Memoization
- Dynamic programming with memoization
- The Fibonacci example
Environments
- Relationship between global variables and environments
- Free variables
- The _ENV table and the _G table
More about modules
- Different approaches to creating modules
- Modules that change the behavior
- Module initialization and arguments
- Using environments to implement safe modules
Advanced iterators and co-routines
- Producer, consumer, filter
- Wrapping co-routines to get iterators
- Stateless iterator for linked lists
Contributing to the Ecosystem
- Uploading packages to MoonRocks
Functional paradigm in Lua
- The map function
- The reduce / fold function
Object-oriented Programming
- Different approaches to OOP
- Different approaches to inheritance
- Examples
A walkthrough of the Lua Standard Libraries
Sites Published: