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

Что такое устранение хвостовой рекурсии?
Стив Йегге упомянул об этом в сообщении в блоге . и я понятия не имею, что это значит, может кто-нибудь заполнить меня? Это то же самое, что оптимизация хвостового вызова ?
9897 просмотров

gcc -fPIC, кажется, испортил флаги оптимизации
Следуя этому вопросу: how-do- i-check-if-gcc-is-performing-tail-recursion-optimization я заметил, что использование gcc с -fPIC, кажется, разрушает эту оптимизацию. Я создаю общую библиотеку, но мне не нужна опция -fPIC. Ну, мой вопрос: почему...
1253 просмотров

Устранение хвостового вызова в Clojure?
Может ли кто-нибудь переписать этот (plt) код схемы в Clojure? (define (f n) (printf "(f ~a)~n" n) (g n)) (define (g n) (printf "(g ~a)~n" n) (h n)) (define (h n) (printf "(h ~a)~n" n) (f (+ n 1))) Таким образом, чтобы не...
648 просмотров

Разве хвостовая рекурсия не должна быть быстрее?
У меня есть следующий код Clojure для вычисления числа с определенным «факторизуемым» свойством. (что именно делает код - вторично). (defn factor-9 ([] (let [digits (take 9 (iterate #(inc %) 1)) nums (map (fn [x] ,(Integer. (apply...
552 просмотров

Почему эта функция последовательности F # не является хвостовой рекурсией?
Раскрытие информации: это появилось в FsCheck, платформе случайного тестирования F#, которую я поддерживаю. У меня есть решение, но оно мне не нравится. Более того, я не понимаю проблемы - ее просто обошли. Довольно стандартная реализация...
735 просмотров

Каково текущее состояние оптимизации хвостового вызова для F# в Mono (2.11)?
Каково текущее состояние реализации Tail Call Optimization (TCO) в Mono (2.11)? Где-то читал, что вся кодовая база должна быть изменена, чтобы использовать соглашение callee-pops-arguments. Каков статус этого изменения? Актуален ли порт ARM/Linux...
703 просмотров
schedule 29.09.2023

Зачем коду активно пытаться предотвратить оптимизацию хвостового вызова?
Название вопроса может быть немного странным, но дело в том, что, насколько мне известно, нет ничего, что вообще говорило бы против оптимизации хвостового вызова. Однако, просматривая проекты с открытым исходным кодом, я уже сталкивался с несколькими...
3191 просмотров

Почему TCO требует поддержки со стороны виртуальной машины?
Говорят, что некоторые виртуальные машины, в первую очередь JVM, не поддерживают совокупную стоимость владения. В результате такой язык, как Clojure, требует, чтобы пользователь вместо этого использовал loop recur . Однако я могу переписать...
294 просмотров

Устранение рекурсивного хвостового вызова для декомпозиции дерева квадрантов в Python
Можно ли с помощью Python устранить множественные рекурсивные хвостовые вызовы (преобразовать в итерацию) в реализации дерева квадрантов, которая назначает точки (X, Y) поддоменам (также известным как конечные узлы)? Вот не очень псевдокод: def...
193 просмотров

Хвостовая рекурсия в NodeJS
Итак, недавно я столкнулся со случаем, когда мне нужно было написать код, в котором обратный вызов вызывает сам себя и т. д., и я задавался вопросом о поддержке NodeJS и хвостового вызова, поэтому я нашел этот ответ...
1615 просмотров

список хвостов rec kotlin
Я пытаюсь выполнить некоторые операции, которые прямо сейчас могут вызвать StackOverflow в Котлине. Зная это, я вспомнил, что в Kotlin есть поддержка tailrec функций, поэтому я попытался сделать: private tailrec fun Turn.debuffPhase():...
604 просмотров

Требования к пространству и времени для соответствия процессору ISO-Prolog
Все реализации функционального языка программирования scheme должны выполнить оптимизацией хвостового вызова всякий раз, когда это применимо. Есть ли у iso-prolog ? и / или аналогичные требования? Мне ясно, что функции процессора Prolog,...
61 просмотров