Foundations
Functions
Functions name reusable work and return values to the caller.
function call
A function call runs the named function and can use the returned value in another expression.
Functions
functions.lua
Replay: real traced execution (multi-file project)
local function square(value)
return value * value
end
local side = 5
local area = square(side)
print("side=" .. side)
print("area=" .. area)
local function square(value)
return value * value
end
local side = 3
local area = square(side)
print("side=" .. side)
print("area=" .. area)
local function square(value)
return value * value
end
local side = 8
local area = square(side)
print("side=" .. side)
print("area=" .. area)
side ← 5
5local side→ 5 = 5 --@side=3, 86local area = square(side5)area ← 25
5local side = 5 --@side=3, 86local area→ 25 = square(side5)78print("side=" .. side5)9print("area=" .. area25)outputside=5 area=25
side ← 3
5local side→ 3 = 36local area = square(side3)area ← 9
5local side = 36local area→ 9 = square(side3)78print("side=" .. side3)9print("area=" .. area9)outputside=3 area=9
side ← 8
5local side→ 8 = 86local area = square(side8)area ← 64
5local side = 86local area→ 64 = square(side8)78print("side=" .. side8)9print("area=" .. area64)outputside=8 area=64
What Happens
square(value)returnsvalue * value.sidestarts at5.square(side)sends5into the function.areabecomes25.- The program prints
side=5andarea=25.
Function Picture
| side | area | | --- | --- | | 3 | 9 | | 5 | 25 | | 8 | 64 |
Try It
Exercise: functions.lua
Reproduce area=25 for side 5, then use the pinned sides 3 and 8 to predict each area.