#scala
#scala
Вопрос:
Просто для экспериментов я хотел бы запретить компилятору выполнять оптимизацию хвостового вызова функции, которая является хвостовой рекурсивной. Есть ли способ сделать это?
Комментарии:
1. Ну, грязным трюком было бы изменить любой рекурсивный вызов присваиванием переменной, а затем вернуть эту переменную. Это должно остановить хвостовую оптимизацию, но я не уверен, будет ли компилятор достаточно умен, чтобы удалить ненужное назначение.
Ответ №1:
Попробуйте -g:notailcalls
опцию компилятора, которая
не будет выполнять оптимизацию хвостового вызова