> -- PGR писал(а):
> Даже нефункциональный GCC преобразовывает в цикл первый вариант функции с нехвостовой рекурсией. GHC есть куда растиЧто любопытно, GHC ведь содержит в себе GCC (хотя его вроде пытаются заменить на С--), но вот в этой программе эта GCC-шная оптимизация (если она и правда есть) не сработала...

Попробовал такой вариант:
## Код:
```
#include <stdio.h>

int f(int n)
{
    return (n == 0) ? 0 : (1 + f(n-1));
}

void cmain(void)
{
    printf("%d\n", f(1000000));
}
```
Скомпилировал через GCC -- программа вываливается с сообщением "C stack overflow in generated code"