Mutual recursion: Difference between revisions

Content added Content deleted
(Initial FutureBasic task solution added)
Line 1,614: Line 1,614:


{{FormulaeEntry|page=https://formulae.org/?script=examples/Mutual_recursion}}
{{FormulaeEntry|page=https://formulae.org/?script=examples/Mutual_recursion}}


=={{header|FutureBasic}}==
I<syntaxhighlight lang="futurebasic">
def fn F( n as long ) as long
def fn M( n as long ) as long

local fn F( n as long ) as long
long result
if n == 0 then exit fn = 1
result = n - fn M( fn F( n-1 ) )
end fn = result

local fn M( n as long ) as long
long result
if n == 0 then exit fn = 0
result = n - fn F( fn M( n-1 ) )
end fn = result

long i, counter

counter = 0
for i = 0 to 19
printf @"%3ld\b", fn F( i )
counter++
if counter mod 5 == 0 then print : counter = 0
next

print : print

counter = 0
for i = 0 to 19
printf @"%3ld\b", fn M( i )
counter++
if counter mod 5 == 0 then print : counter = 0
next

NSLog( @"%@", fn WindowPrintViewString( 1 ) )

HandleEvents
</syntaxhighlight>
{{output}}
<pre>
1 1 2 2 3
3 4 5 5 6
6 7 8 8 9
9 10 11 11 12


0 0 1 2 2
3 4 4 5 6
6 7 7 8 9
9 10 11 11 12
</pre>


=={{header|Go}}==
=={{header|Go}}==