Mutual recursion: Difference between revisions

Content added Content deleted
(→‎{{header|TXR}}: Replace obsolete approach with modern TXR.)
(Updated D entry)
Line 502: Line 502:
<lang d>import std.stdio, std.algorithm, std.range;
<lang d>import std.stdio, std.algorithm, std.range;


/*auto*/ int male(in int n) pure nothrow {
int male(in int n) pure nothrow {
return n ? (n - female(male(n - 1))) : 0;
return n ? n - male(n - 1).female : 0;
}
}


/*auto*/ int female(in int n) pure nothrow {
int female(in int n) pure nothrow {
return n ? (n - male(female(n - 1))) : 1;
return n ? n - female(n - 1).male : 1;
}
}


void main() {
void main() {
iota(20).map!female().writeln();
20.iota.map!female.writeln;
iota(20).map!male().writeln();
20.iota.map!male.writeln;
}</lang>
}</lang>
{{out}}
{{out}}