Какая Функция является лучшей с точки зрения Эффективности Использования стека и Время

Кодом является Закон - Вы делаете все эти записи, редактирование и размышление в [язык по Вашему выбору], но ПОЧЕМУ? Что Вы кодируете СРЕДНИЙ? Что будет он на самом деле ДЕЛАТЬ?

(я, возможно, рекомендовал книгу по QA, но я не сделал...)

6
задан Brian Carper 23 July 2009 в 02:39
поделиться

2 ответа

Циклическая / повторяющаяся версия - правильный путь. Clojure не может оптимизировать хвостовые вызовы из-за ограничений JVM.

2
ответ дан 17 December 2019 в 20:34
поделиться

Написание кода таким образом, чтобы компилятор / интерпретатор мог оптимизировать его для хвостовой рекурсии, должно привести к некоторому увеличению производительности и снижению использования стека. Я думаю, что ваша обычная функция подсчета может претендовать на хвостовую рекурсию, так что она должна быть довольно быстрой. Не уверен, так как я балуюсь Лиспом только в качестве хобби.

http://en.wikipedia.org/wiki/Tail_recursion

0
ответ дан 17 December 2019 в 20:34
поделиться