W języku Lua istnieje możliwość definiowania procedur i funkcji. Definicja procedury i funkcji nie różni się niczym. W funkcji występuje natomiast instrukcja return, która ma takie samo znaczenie jak analogiczna instrukcja w języku C tzn. zwraca wartość zmiennej będącej parametrem instrukcji oraz funkcja kończy działanie w miejscu instrukcji return przekazując działanie do miejsca wywołania. Przykładowa funkcja może mieć postać:
function foo()
...
end
Wywołanie funkcji w innej części programu może mieć postać:
foo();
W funkcjach można stosować rekurencje.
Pętla jest wykonywana
n razy i zmienia wartość zmiennej
i w zakresie od 1 do n włącznie.
Przykład pętli
while:
while [warunek] do
[instrukcja 1];
....
[instrukcja n];
end
Pętla będzie wykonywana dopóty warunek będzie spełniony