Вопросы по теме 'tail-call-optimization'

Что такое оптимизация хвостового вызова?
Очень просто, что такое оптимизация обратного вызова? В частности, какие небольшие фрагменты кода можно применить, а где нет, с объяснением почему?
189566 просмотров

Объясните мне, что такое оптимизация хвостовых вызовов и зачем она нужна Python.
Так что, по-видимому, была большая шумиха по поводу того, нуждается ли Python в оптимизации хвостовых вызовов. Это дошло до апогея, когда кто-то отправил Гвидо копию SICP потому что он «не понял». Я в той же лодке, что и Гвидо. Я понимаю...
1594 просмотров

Оптимизация хвостового вызова c++ vs2010
Рассмотрим следующий код: int fac_aux( int x, int res ) { if( x == 1 ) return res; else return fac_aux( x - 1, res * x ); } int fac( int x ) { return fac_aux( x, 1 ); } int main() { int x = fac( 50 ); std::cout << x;...
1336 просмотров

Оптимизации компилятором в рекурсивной программе
Меня мотивировал вопрос оптимизации хвостового вызова Что такое оптимизация хвостового вызова? Итак, я решил посмотреть, как я могу сделать это на простом C. Итак, я написал 2 факториальные программы, 1-я, где можно применить оптимизацию...
759 просмотров

Является ли эта функция F # хвостовой рекурсивной, когда рекурсивная функция вызывается несколько раз внутри функции?
Есть несколько вопросов о хвостовой рекурсивной функции, например: this и this , но не смог найти ничего похожего на следующее. Насколько я понимаю, функция, оптимизированная для хвостового вызова, должна возвращать накопленное значение в своем...
824 просмотров

Как определить функции, к которым я могу применить оптимизацию хвостового вызова?
Я пытаюсь написать интерпретатор Scheme, но считаю, что TCO сложно реализовать. Я не уверен, какими свойствами должна обладать функция, чтобы сработала совокупная стоимость владения. 1) Функция с саморекурсивным вызовом в конце определения:...
1186 просмотров
schedule 09.04.2022

Выполнение хвостовой рекурсии в C++
Моя функция может быть написана намного проще, если я выполню рекурсию хвостового вызова (в отличие от цикла for (;;)...break ). Тем не менее, я боюсь, что у меня будут проблемы с производительностью, если компилятор не сможет его оптимизировать,...
2259 просмотров

Оптимизирована ли реализация факториального хвостового вызова (TCO) в стиле продолжения?
Вот две реализации факториала с этого сайта : Оптимизированный хвостовой вызов (TCO): function fact(n) { return tail_fact(n,1) ; } function tail_fact(n,a) { if (n == 0) return a ; else return tail_fact(n-1,n*a) ; } И тот,...
83 просмотров
schedule 12.05.2023

как вставить в середину списка, будучи удобным для хвостового вызова, но без ущерба для производительности?
Итак, у меня есть эта функция, которая кажется не дружественной к хвостовому вызову, верно? let rec insertFooInProperPosition (foo: Foo) (bar: list<Foo>): list<Foo> = match bar with | [] -> [ foo ] | head::tail ->...
69 просмотров