Hi, This code does not work:
import std.stdio; bool odd(int n); bool even(int n); bool even(int n) { if (n == 0) return true; else return odd(n - 1); } bool odd(int n) { if (n == 0) return false; else return even(n - 1); } void main() { bool r = odd(655370); writeln(r); } http://ideone.com/GSNMxl This code works completely: #include <cstdio> bool odd(int n); bool even(int n); bool even(int n) { if (n == 0) return true; else return odd(n - 1); } bool odd(int n) { if (n == 0) return false; else return even(n - 1); } int main() { bool r = odd(655370); printf("%d\n", r); // prints 0 return 0; } http://ideone.com/TT48zT Why D does not work?