Mutual recursion: Difference between revisions

Line 2,236:
<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|S-lang}}==
<lang S-lang>% Forward definitions: [also deletes any existing definition]
define f();
define m();
 
define f(n) {
if (n == 0) return 1;
else if (n < 0) error("oops");
return n - m(f(n - 1));
}
define m(n) {
if (n == 0) return 0;
else if (n < 0) error("oops");
return n - f(m(n - 1));
}
 
foreach $1 ([0:19])
() = printf("%d ", f($1));
() = printf("\n");
foreach $1 ([0:19])
() = printf("%d ", m($1));
() = printf("\n");</lang>
{{out}}
<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|Sather}}==
Anonymous user