Jump to content

Anonymous recursion: Difference between revisions

PascalABC.NET
imported>Arakov
(PascalABC.NET)
 
Line 2,379:
15 - 610
Hit Any Key
</pre>
 
=={{header|PascalABC.NET}}==
<syntaxhighlight lang="pascal">
function Fib(n: integer): integer;
begin
if n <= 0 then
raise new System.ArgumentOutOfRangeException('Must be > 0','n');
var fibHelper: (integer,integer,integer) -> integer;
fibHelper := (n,a,b) -> n = 1 ? a : fibHelper(n-1, b, a + b);
Result := fibHelper(n,1,1);
end;
 
begin
for var i:=1 to 10 do
Fib(i).Print;
end.
</syntaxhighlight>
or
<syntaxhighlight lang="pascal">
function Fib(n: integer): integer;
function fibHelper(n,a,b: integer): integer :=
n = 1 ? a : fibHelper(n-1, b, a + b);
begin
if n <= 0 then
raise new System.ArgumentOutOfRangeException('Must be > 0','n');
Result := fibHelper(n,1,1);
end;
 
begin
for var i:=1 to 10 do
Fib(i).Print;
end.
</syntaxhighlight>
 
{{out}}
<pre>
1 1 2 3 5 8 13 21 34 55
</pre>
 
129

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.