История изменений
Исправление Bad_ptr, (текущая версия) :
В Common Lisp не лучше. Стандарт не гарантирует TCO.
И при этом даже стандартные функции реализованы рекурсивно:
Например subst:
https://github.com/Clozure/ccl/blob/003917cbbce90b7a7b5fa4bf90e9fe424e5637e9/...
А ведь это даже не tail call. Причём во всех реализациях такой код, не только ccl.
Короче стэковерфлоу можно поймать даже дёрнув стандартную функцию subst на достаточно большом дереве.
Исходная версия Bad_ptr, :
В Common Lisp не лучше. Стандарт не гарантирует TCO.
И при этом даже стандартные функции реализованы рекурсивно:
Например subst:
https://github.com/Clozure/ccl/blob/003917cbbce90b7a7b5fa4bf90e9fe424e5637e9/...
А ведь это даже не tail call. Причём во всех реализациях такой код, не только ccl.
Короче стэковерфлоу можно поймать даже дёрнув стандартную функцию на достаточно большом дереве.