Mutual recursion: Difference between revisions

Content added Content deleted
(x86)
(Forth)
Line 212: Line 212:
lists:map(fun(X) -> io:format("~w ", [m(X)]) end, lists:seq(0,19)),
lists:map(fun(X) -> io:format("~w ", [m(X)]) end, lists:seq(0,19)),
io:format("~n", []).</lang>
io:format("~n", []).</lang>

=={{header|Forth}}==
Forward references required for mutual recursion may be set up using DEFER.
<lang forth>
defer m

: f ( n -- n )
dup 0= if 1+ exit then
dup 1- recurse m - ;

:noname ( n -- n )
dup 0= if exit then
dup 1- recurse f - ;
is m

: test ( xt n -- ) cr 0 do i over execute . loop drop ;

' m 20 test \ 0 0 1 2 2 3 4 4 5 6 6 7 7 8 9 9 10 11 11 12
' f 20 test \ 1 1 2 2 3 3 4 5 5 6 6 7 8 8 9 9 10 11 11 12
</lang>


=={{header|Fortran}}==
=={{header|Fortran}}==