Let's write a program that computers the fibonacci sequence. First we must define the base cases of the function. for the sake of simplicity, n <= 0 returns zero. The base case for n <= 0: if n <= 0 then return 0 end The base case for 1: if n == 1 then return 1 end Now for a recursive case. For this implementation, we will stick with the original formula rather than optimizing it. The recursive case for the fibonacci sequence: return fib(n - 1) + fib(n - 2) Finally, lets assemble this into a Lua function. The fibonacci function: local function fib(n) @ The base case for n <= 0 @ The base case for 1 @ The recursive case for the fibonacci sequence end our program: @ The fibonacci function print(fib(10)) do: compile source: @ our program --- do: %action --- %action --- dereference from: %reference %reference: %code --- dereference from: %reference spent: %code compiled code: %code --- dereference from: %reference --- restore dereference from: %reference --- restore dereference from: %reference spent: %code --- restore dereference from: %reference %reference: %code --- restore dereference from: %reference --- compile --- compile source: @ %reference --- dereference from: %reference needs another pass: yes --- compile source: %code --- compile compiled code: %code --- compile needs another pass: yes --- next pass --- compile --- compilation finished --- next pass compiled code: %code --- next pass source: %code --- next pass --- compile --- compilation finished compiled code: %code --- compilation finished out: %code --- compilation finished --- print code --- print code out: %tuple --- print code @print: %tuple