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:

United Arab Emirates - Advanced Lua

Qatar - Advanced Lua

Egypt - Advanced Lua

Saudi Arabia - Advanced Lua

South Africa - Advanced Lua

Brasil - Lua Avançado

Canada - Advanced Lua

中国 - Advanced Lua

香港 - Advanced Lua

澳門 - Advanced Lua

台灣 - Advanced Lua

USA - Advanced Lua

Österreich - Advanced Lua

Schweiz - Advanced Lua

Deutschland - Advanced Lua

Czech Republic - Advanced Lua

Denmark - Advanced Lua

Estonia - Advanced Lua

Finland - Advanced Lua

Greece - Advanced Lua

Magyarország - Advanced Lua

Ireland - Advanced Lua

Luxembourg - Advanced Lua

Latvia - Advanced Lua

España - Lua Avanzada

Italia - Advanced Lua

Lithuania - Advanced Lua

Nederland - Advanced Lua

Norway - Advanced Lua

Portugal - Lua Avançado

România - Advanced Lua

Sverige - Advanced Lua

Türkiye - Advanced Lua

Malta - Advanced Lua

Belgique - Advanced Lua

France - Advanced Lua

日本 - Advanced Lua

Australia - Advanced Lua

Malaysia - Advanced Lua

New Zealand - Advanced Lua

Philippines - Advanced Lua

Singapore - Advanced Lua

Thailand - Advanced Lua

Vietnam - Advanced Lua

India - Advanced Lua

Argentina - Lua Avanzada

Chile - Lua Avanzada

Costa Rica - Lua Avanzada

Ecuador - Lua Avanzada

Guatemala - Lua Avanzada

Colombia - Lua Avanzada

México - Lua Avanzada

Panama - Lua Avanzada

Peru - Lua Avanzada

Uruguay - Lua Avanzada

Venezuela - Lua Avanzada

Polska - Advanced Lua

United Kingdom - Advanced Lua

South Korea - Advanced Lua

Pakistan - Advanced Lua

Sri Lanka - Advanced Lua

Bulgaria - Advanced Lua

Bolivia - Lua Avanzada

Indonesia - Advanced Lua

Kazakhstan - Advanced Lua

Moldova - Advanced Lua

Morocco - Advanced Lua

Tunisia - Advanced Lua

Kuwait - Advanced Lua

Oman - Advanced Lua

Slovakia - Advanced Lua

Kenya - Advanced Lua

Nigeria - Advanced Lua

Botswana - Advanced Lua

Slovenia - Advanced Lua

Croatia - Advanced Lua

Serbia - Advanced Lua

Bhutan - Advanced Lua

Nepal - Advanced Lua

Uzbekistan - Advanced Lua