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?

Reply via email to