26 lines
565 B
Text
26 lines
565 B
Text
function call_fn(integer f, n)
|
|
return call_func(f,{f,n})
|
|
end function
|
|
|
|
function Y(integer f)
|
|
return f
|
|
end function
|
|
|
|
function fac(integer self, integer n)
|
|
return iff(n>1?n*call_fn(self,n-1):1)
|
|
end function
|
|
|
|
function fib(integer self, integer n)
|
|
return iff(n>1?call_fn(self,n-1)+call_fn(self,n-2):n)
|
|
end function
|
|
|
|
procedure test(string name, integer rid=routine_id(name))
|
|
integer f = Y(rid)
|
|
printf(1,"%s: ",{name})
|
|
for i=1 to 10 do
|
|
printf(1," %d",call_fn(f,i))
|
|
end for
|
|
printf(1,"\n");
|
|
end procedure
|
|
test("fac")
|
|
test("fib")
|