3
ответа

Рекурсивные последовательности пропускают память?

Мне нравится определять последовательности рекурсивно следующим образом: позвольте rec startFrom x = seq {приводят к x; уступите! startFrom (x + 1)} я не уверен, должны ли рекурсивные последовательности как это быть...
вопрос задан: 19 June 2009 20:46
3
ответа

Объясните мне, что грандиозное предприятие с оптимизацией последнего вызова и почему для Python нужен он

Так, по-видимому, была большая сенсация, законченная, нужна ли для Python оптимизация последнего вызова. Это достигло кульминации, когда кто-то поставил Guido копия SICP, потому что он "не получил его". Я нахожусь в...
вопрос задан: 10 June 2009 12:28
2
ответа

Есть ли способ реализации хвостовой рекурсии в Java? [Дубликат]

Я изучал различные алгоритмы сортировки и сталкивался с терминальной рекурсией хвоста и что Java не поддерживает его из-за стека вызовов для рекурсивных функций, которые не позволяют рекурсивные вызовы ...
вопрос задан: 28 September 2017 07:18
2
ответа

Что такое устранение хвостовой рекурсии?

Steve Yegge упомянул это в сообщении в блоге, и я понятия не имею, что это означает, кто-то мог заполнить меня? Действительно ли это - то же самое как оптимизация последнего вызова?
вопрос задан: 23 May 2017 12:17
2
ответа

Рекурсивная хвостом сортировка слиянием в OCaml

Я пытаюсь реализовать рекурсивную хвостом сортирующую список функцию в OCaml, и я придумал следующий код: позвольте tailrec_merge_sort l =, позволяют разделению l =, позволяют rec _split источник, оставленный право =...
вопрос задан: 2 March 2012 13:09
2
ответа

Рекурсивные функции в выражениях вычисления

Некоторый фон сначала. Я в настоящее время узнаю некоторый материал об одноместном синтаксическом анализаторе combinators. В то время как я пытался передать функцию 'chainl1' из данной статьи (p. 16-17), я предложил это решение:...
вопрос задан: 29 June 2010 14:33
2
ответа

Как создать рекурсивную стоимость структуры данных в (функциональном) F#?

Как может значение типа: введите Дерево = | Узел интервала *, Древовидный список имеет значение, которое ссылки само сгенерировали функциональным способом? Получающееся значение должно быть равно x в следующем...
вопрос задан: 21 June 2010 20:39
2
ответа

Предупреждение/ошибка Clojure при отказе оптимизации последнего вызова

В Scala 2.8.x, новая аннотация (@tailrec) была добавлена, который дает ошибку времени компиляции, если компилятор не может выполнить оптимизацию последнего вызова на аннотируемом методе. Есть ли некоторые подобные...
вопрос задан: 26 April 2010 11:25
2
ответа

Это функционирует хвостовая рекурсия использования?

Я задаюсь вопросом, оптимизирует ли oCaml этот код, чтобы быть рекурсивным хвостом и раз так делает F#? позвольте rec суммировать xs =, соответствуют xs | []-> 0 | x:: xs'-> x + суммируют xs'
вопрос задан: 27 February 2010 11:54
2
ответа

Ruby выполняет Оптимизацию последнего вызова?

Функциональный вывод языков к использованию рекурсии для решения большого количества проблем и поэтому многих из них выполняет Оптимизацию последнего вызова (TCO). TCO вызывает вызовы к функции от другой функции (или...
вопрос задан: 5 May 2009 13:24
1
ответ

Эффективно ли Throwing Exception для принудительного выхода из рекурсии?

Ниже просто псевдокод. function x (node) {if (node.val == 42) return true; // Что если я сгенерирую исключение здесь? val1 = node.left? x (node.left): false; val2 = узел ....
вопрос задан: 30 March 2019 23:43
1
ответ

Рекурсивный case-класс: java.lang.StackOverflowError на равных

Я играю с упражнениями функционального программирования в Scala и реализую простой односвязный список. Вот соответствующая часть реализации: запечатанная черта List [+ T] case class Cons [+ T] (t: ...
вопрос задан: 16 January 2019 16:33
1
ответ

Рекурсивные выражения вычисления

В предыдущем вопросе мне сказали, как переписать мои выражения вычисления, таким образом, он использует хвостовую рекурсию. Я переписал свой код, но все еще получил StackOverflowException. Для определения местоположения проблемы, я записал некоторым...
вопрос задан: 23 May 2017 12:34
1
ответ

Понимание рекурсивный хвостом F#

Недавно, я изучаю F#. Я пытаюсь решить проблему по-разному. Как это: (* [0; 1; 2; 3; 4; 5; 6; 7; 8]-> [(0,1,2); (3,4,5); (6,7,8)] *),//главно-рекурсивный список rec toTriplet_v1, которому позволяют, = соответствуют списку...
вопрос задан: 4 March 2016 19:45
1
ответ

Каков некоторый простой код F#, который генерирует .tail IL инструкция?

Я хотел бы видеть .tail IL инструкция, но простые рекурсивные функции с помощью последних вызовов, которые я писал, по-видимому, оптимизированы в циклы. Я на самом деле предполагаю на этом, поскольку я не...
вопрос задан: 4 March 2016 15:58
1
ответ

Как Вы делаете этот хвост функции питания Haskell рекурсивным?

Как я сделал бы этот хвост функции питания Haskell рекурсивным? turboPower 0 = 1 turboPower b | даже b = turboPower (a*a) (b 'отделение' 2) | иначе = * turboPower (b-1)
вопрос задан: 27 January 2015 18:24
1
ответ

Как обеспечить функцию хвостовой рекурсивной? [Дубликат]

Поэтому я попытался написать хвосто-рекурсивное возведение в степень (для положительных целых показателей). Я пришел с этим (это возведение в степень по квадрату): (define (^ n k) (define (helper n k acc) (cond [(...
вопрос задан: 2 December 2012 01:01
1
ответ

Действительно ли GHC в состоянии к последнему вызову, оптимизируют действия IO?

GHC выполнит оптимизацию последнего вызова на следующей функции по умолчанию? Единственная странная вещь об этом состоит в том, что это рекурсивно определяет действие IO, но я не вижу, почему это не могло быть TCO'd....
вопрос задан: 17 April 2011 21:06
1
ответ

Вопрос для начинающих о куче и мусоре в Clojure

У меня вопрос по Clojure: я пытаюсь изучить язык, пройдя через Мы с Project Euler не понимаем, что происходит под капотом: Следующий код предназначен для использования return ...
вопрос задан: 29 August 2010 23:53
1
ответ

Clojure: Предотвращение переполнения стека в Решете Erathosthene?

Вот моя реализация Решета Erathosthene в Clojure (на основе урока SICP по потокам): (defn nats-от [n] (выполняют итерации inc n)) (defn делятся? [p q] (нуль? (rem q p))) (defn решето [поток]...
вопрос задан: 7 June 2010 18:34
1
ответ

Устранение последнего вызова в Clojure?

Кто-то может переписать этот (plt) код Схемы в Clojure? (определите (f n) (printf" (f ~a) ~n" n) (g n)) (определяют (g n) (printf" (g ~a) ~n" n) (h n)) (определяют (h n) (printf" (h ~a) ~n" n)...
вопрос задан: 2 February 2010 04:34
1
ответ

Как узнать, является ли функция хвостовой рекурсивной в F #

Я написал следующую функцию: let str2lst str = let rec f s acc = match s with | "" -> акк | _ -> f (s.Substring 1) (s. [0] :: acc) f str [] Как я могу узнать, что ...
вопрос задан: 10 June 2009 12:28
0
ответов

Оптимизация Tail Call в Go

Оптимизирует ли язык программирования Go на данный момент? Если нет, то оптимизирует ли он хотя бы хвостовой рекурсивный вызов функции для себя?
вопрос задан: 11 November 2018 18:23
0
ответов

2 вопроса в конце курса функционального программирования

Вот, кажется, две самые важные вещи, которые я могу извлечь из курса «Как проектировать программы (упрощенная ракетка), который я только что закончил, прямо из конспектов лекции. : 1) Оптимизация хвостового вызова, ...
вопрос задан: 30 June 2018 05:13
0
ответов

Могут ли все рекурсивные функции быть переписаны -как хвостовые -рекурсии? [дубликат]

Возможный дубликат :Существуют ли задачи, которые нельзя написать с использованием хвостовой рекурсии? Насколько я понимаю, хвостовая рекурсия — это оптимизация, которую можно использовать, когда рекурсивный вызов не требует...
вопрос задан: 8 September 2017 21:01
0
ответов

Есть ли в C # хвостовая рекурсия? [дубликат]

Возможный дубликат: Почему .net / C # не устраняет хвостовую рекурсию? C # выполняет повторное использование хвоста? Я не могу найти никакой документации, говорящей мне, есть это или нет.
вопрос задан: 23 May 2017 12:25
0
ответов

Почему Scala не оптимизирует хвостовой вызов с помощью try / catch?

В недавнем ответе на StackOverflow я дал следующий рекурсивный код: def retry [T] (n: Int) (fn : => T): T = {попробуйте {fn} catch {case e if n> 1 => retry (n - 1) (fn)} } ...
вопрос задан: 23 May 2017 12:24
0
ответов

Поддерживает ли Java хвостовую рекурсию? [дубликат]

Возможный дубликат: почему JVM все еще не поддерживает оптимизацию хвостового вызова? Я вижу так много разных ответов в Интернете, поэтому решил спросить экспертов.
вопрос задан: 23 May 2017 12:17
0
ответов

Накладные расходы на рекурсию - насколько это серьезно? [дубликат]

Возможный дубликат: быстрее ли рекурсия, чем цикл? Впервые меня научили серьезно программировать на C около 15 лет назад. Мой работодатель хотел получить высокооптимизированный код для вычислительной ...
вопрос задан: 23 May 2017 12:09
0
ответов

Оптимизация хвостового вызова в Mathematica?

Формулируя ответ на другой вопрос SO, я столкнулся с некоторым странным поведением в отношении хвостовой рекурсии в Mathematica. Документация Mathematica намекает, что оптимизация хвостового вызова может ...
вопрос задан: 23 May 2017 11:54