Какие языки поддерживают полноценную рекурсию? А то во всех языках она есть, но на деле воспользоваться не получается, т.к. переполняется стек. Поэтому всегда приходится использовать циклы. А хвостовая рекурсия - фиговый листочек, т.к. это просто другая запись того же цикла, т.е. f(x) { ... f(x-1) } это же while(1) { ... x = x-1 }
Хотелось бы иметь возможность пометить рекурсивную функцию специальным ключевым словом, чтобы она все локальные переменные и информацию о вызовах хранила не на стеке, а в куче.