Есть ли способ сообщить компилятору scala не выполнять оптимизацию хвостового вызова?

#scala

#scala

Вопрос:

Просто для экспериментов я хотел бы запретить компилятору выполнять оптимизацию хвостового вызова функции, которая является хвостовой рекурсивной. Есть ли способ сделать это?

Комментарии:

1. Ну, грязным трюком было бы изменить любой рекурсивный вызов присваиванием переменной, а затем вернуть эту переменную. Это должно остановить хвостовую оптимизацию, но я не уверен, будет ли компилятор достаточно умен, чтобы удалить ненужное назначение.

Ответ №1:

Попробуйте -g:notailcalls опцию компилятора, которая

не будет выполнять оптимизацию хвостового вызова