template fib(int n:0) {
enum { fib = 0 }
}
template fib(int n:1) {
enum { fib = 1 }
}
template fib(int n) {
enum { fib = fib!(n-1) + fib!(n-2) }
}
extern (C) { char *printf(char *, ...); }
char[] gatoi(int x)
{
char[] gatoi = "";
if (x == 0)
return "0";
else
while (x > 0)
{
gatoi = "0123456789"[x%10] ~ gatoi;
x /= 10;
}
return gatoi;
}
char[] do_for(int x, int y)
{
char[] do_for;
for (int i=x; i<y; i++)
do_for ~= `printf("%d\n", fib!(` ~ gatoi(i) ~ "));\n";
return do_for;
}
void main(char[][] args)
{
pragma (msg, do_for(0, 20));
}