Function parameters receive values from each call.

call inputs Parameters give a function names for the values passed by the caller.

Function Parameters

level
function_parameters.lua
Replay: real traced execution (multi-file project)
local level = 3

local function badge(name, value)
  return name .. ":" .. value
end

local label = badge("Ada", level)

print("level=" .. level)
print("label=" .. label)
local level = 1

local function badge(name, value)
  return name .. ":" .. value
end

local label = badge("Ada", level)

print("level=" .. level)
print("label=" .. label)
local level = 5

local function badge(name, value)
  return name .. ":" .. value
end

local label = badge("Ada", level)

print("level=" .. level)
print("label=" .. label)
  1. level ← 3

    1local level→ 3 = 3 --@level=1, 523local function badge(name, value)4  return name .. ":" .. value5end67local label = badge("Ada", level3)
  2. label ← Ada:3

    7local label→ Ada:3 = badge("Ada", level3)89print("level=" .. level3)10print("label=" .. labelAda:3)
    outputlevel=3
    label=Ada:3
  1. level ← 1

    1local level→ 1 = 123local function badge(name, value)4  return name .. ":" .. value5end67local label = badge("Ada", level1)
  2. label ← Ada:1

    7local label→ Ada:1 = badge("Ada", level1)89print("level=" .. level1)10print("label=" .. labelAda:1)
    outputlevel=1
    label=Ada:1
  1. level ← 5

    1local level→ 5 = 523local function badge(name, value)4  return name .. ":" .. value5end67local label = badge("Ada", level5)
  2. label ← Ada:5

    7local label→ Ada:5 = badge("Ada", level5)89print("level=" .. level5)10print("label=" .. labelAda:5)
    outputlevel=5
    label=Ada:5

Follow the Parameters

  1. level starts as 3.
  2. The call is badge("Ada", level).
  3. Inside the function, name receives Ada.
  4. value receives 3.
  5. The function joins them into Ada:3. | argument | parameter | used as | | --- | --- | --- | | Ada | name | label name | | 3 | value | label level | | result | - | Ada:3 |

Exercise: function_parameters.lua

Reproduce level=3 and label=Ada:3, then use the pinned level variants 1 and 5 to predict label=Ada:1 and label=Ada:5.