Результаты поиска по запросу "tail-recursion"
Преобразовать нормальную рекурсию в хвостовую рекурсию
Мне было интересно, если есть какой-то общий метод для преобразования "нормальной" рекурсии сfoo(...) + foo(...) как последний вызов хвостовой рекурсии. Например (scala): def pascal(c: Int, r: Int): Int = { if (c == 0 || c == r) 1 else pascal(c ...
Почему рекурсивный вызов вызывает StackOverflow на разных глубинах стека?
Я пытался понять, как хвостовые вызовы обрабатываются компилятором C #. (Ответ:Они не. [https://stackoverflow.com/questions/491376/why-doesnt-net-c-optimize-for-tail-call-recursion] Но64-битный JIT БУДЕТ делать TCE (устранение хвостовых ...
А поскольку это хвостовой контекст, функция является хвостовой рекурсивной. Вот как это делают функциональные программисты: просматривают тело определения на предмет рекурсивных вызовов, а затем проверяют, что каждое из них происходит в хвостовом контексте. Более интуитивное определение хвостового вызова - это когда ничего не делается с результатом вызова, кроме его возврата.
тся ли эта функция хвостовой рекурсивной? let rec rec_algo1 step J = if step = dSs then J else let a = Array.init (Array2D.length1 M) (fun i -> minby1J i M J) let argmin = a|> Array.minBy snd |> fst rec_algo1 (step+1) (argmin::J)В общем, есть ...
и избежать необходимости внутреннего метода. Но это не всегда возможно, и это не может быть красиво вызвано из кода Java, если вы беспокоитесь о взаимодействии.
ного новичок в том, что Скала пробует это, когда читает Дэвида Поллака «Начать Скала». Он определяет простую рекурсивную функцию, которая загружает все строки из файла: def allStrings(expr: => String): List[String] = expr match { case null => ...
медленнее, на самом деле это будет иметь поведение O (n ^ 2), которого следует избегать, как ад. Если вы не хотите использовать реверс, просто используйте рекурсивное тело вместо хвостового и не используйте
ичок в изучении Erlang. После прочтения о списочном понимании и рекурсии в Erlang, я хотел попробовать реализовать свой собственныйmap функция, которая получилась так: % Map: Map all elements in a list by a function map(List,Fun) ...
Большое спасибо за просмотр этого Томаса. Однако, как говорит kvb, это вызывает немного больше вопросов, чем ответов. В частности, есть ли что-то в выражениях вычислений, из-за которых компилятор теряет "хвостовую рекурсивность" функций, написанных с использованием bind, если bind не записан в стиле передачи продолжения? Значит ли это, что любой построитель вычислений в реальном мире должен проходить мимо?
ытие: это появилось в FsCheck, среде случайного тестирования F #, которую я поддерживаю. У меня есть решение, но оно мне не нравится. Более того, я не понимаю проблемы - ее просто обошли. Довольно стандартная реализация последовательности ...
В чем преимущество использования хвостовой рекурсии?
Я читал статьи, описывающие, как можно уменьшить сложность быстрой сортировки с помощью хвостовой рекурсивной версии, но я не могу понять, как это так. Ниже приведены две версии: QUICKSORT(A, p, r) q = PARTITION(A, p, r) QUICKSORT(A, p, q-1) ...
Однако этот ответ неполон, потому что мы не учли, что произойдет, если мы дадим пустой список. Мы думали, что в нашем списке всегда есть хотя бы один элемент. Поэтому нам нужно подумать о том, каким должен быть ответ, если нам дан пустой список, а ответ, очевидно, равен 0. Поэтому добавьте эту информацию в нашу функцию, и это называется условием основания / ребра.
я большие проблемы с пониманиемрекурсия в школе. Всякий раз, когда профессор говорит об этом, я, кажется, получаю это, но как только я попробую это самостоятельно, это полностью разрушит мои мозги. Я пытался решитьБашни Ханоя всю ночь и ...
Есть ли проблемы, которые нельзя написать с помощью хвостовой рекурсии?
Хвостовая рекурсия является важной стратегией оптимизации производительности в функциональных языках, поскольку она позволяет рекурсивным вызовам использовать постоянный стек (а не O (n)). Существуют ли проблемы, которые просто не могут быть ...
Пролог Аккумуляторы. Они действительно «другая» концепция?
Я изучаю Пролог в своей лаборатории искусственного интеллекта, из источника Изучай пролог сейчас! [http://www.learnprolognow.org/lpnpage.php?pageid=online]. В 5-й главе мы узнаем оАккумуляторы, И как пример, эти два фрагмента ...