Mutual recursion: Difference between revisions

Content added Content deleted
(Added BASIC)
(added standard ml)
Line 609: Line 609:
check for zero
check for zero
</lang>
</lang>

=={{header|Standard ML}}==
<lang sml>fun f 0 = 1
| f n = n - m (f (n-1))
and m 0 = 0
| m n = n - f (m (n-1))
;</lang>

The <code>'''fun'''</code> construct creates recursive functions, and the <code>'''and'''</code> allows a group of functions to call each other. The above is just a shortcut for the following:

<lang sml>val rec f = fn 0 => 1
| n => n - m (f (n-1))
and m = fn 0 => 0
| n => n - f (m (n-1))
;</lang>

which indicates that the functions call themselves (<code>'''rec'''</code>) and each other (<code>'''and'''</code>).


=={{header|Tcl}}==
=={{header|Tcl}}==