Funktionen sind Werte: function name(a, b) return a + b end. Sie können mehrere Werte zurückgeben und beliebig viele Argumente annehmen (...). Anonyme Funktionen speicherst du in Variablen und gibst sie weiter. Mit Closures merkt sich eine Funktion Variablen aus ihrer Umgebung.
local function quadrat(x)
return x * x
end
local function minmax(a, b)
if a < b then return a, b else return b, a end
end
local klein, gross = minmax(9, 4)
print(quadrat(7), klein, gross)
local function zaehler()
local n = 0
return function() n = n + 1; return n end
end
local z = zaehler()
print(z(), z(), z()) -- 1 2 3Merke
Funktionen sind Werte
Mehrere Rückgabewerte möglich
Closures merken sich ihre Umgebung
Aufgabe
Schreibe eine Funktion, die Summe und Produkt zweier Zahlen zurückgibt.