|
Contents | Previous | Next | Subchapters |
| See Also | recursion |
clear
begin
function fac1(n) begin
if n==1 then return 1
return n * fac2(n - 1)
end
function fac2(n) begin
if n==1 then return 1
return n * fac1(n - 1)
end
end
If you then enter the text above followed by
print fac1(3)
O-Matrix will respond
6
The reference fac1(3) caused the following evaluations:
function fac1(3) begin
if 3==1 then return 1
return 3 * fac2(2) # fac2(2) returns 2 * 1
end
function fac2(2) begin
if 2==1 then return 1
return 2 * fac1(1) # fac1(1) returns 1
end
function fac1(1) begin
if 1==1 then return 1 # returns 1
return 1 * fac2(0)
end