20.1.6. Procedury i funkcje

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