$ include "seed7_05.s7i"; const func integer: fib (in integer: x) is func result var integer: fib is 0; local const func integer: fib1 (in integer: n) is func result var integer: fib1 is 0; begin if n < 2 then fib1 := n; else fib1 := fib1(n-2) + fib1(n-1); end if; end func; begin if x < 0 then raise RANGE_ERROR; else fib := fib1(x); end if; end func; const proc: main is func local var integer: i is 0; begin for i range 0 to 4 do writeln(fib(i)); end for; end func;