17
ответов

Понимание [закрытой] рекурсии

Я испытываю главные затруднения при понимании рекурсии в школе. Каждый раз, когда преподаватель говорит об этом, я, кажется, получаю его, но как только я пробую его самостоятельно, полностью уносит мои мозги. Я пробовал...
вопрос задан: 24 March 2015 16:01
13
ответов

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

Начав изучать шепот, я натолкнулся на термин рекурсивный хвост. Что это значит именно?
вопрос задан: 11 October 2016 02:32
9
ответов

рекурсивные функции erlangs не являются просто goto?

Только получить его прямо в моей голове. Рассмотрите этот бит в качестве примера кода Erlang: тест ()-> получает {Из, независимо от того, что}-> %% делают что-то тестирует ();...
вопрос задан: 27 September 2009 12:22
8
ответов

Эффективная рекурсия в функциональном программировании по сравнению с неэффективной рекурсией в различных парадигмах

Насколько я знаю, что рекурсия очень изящна, но неэффективна в ООП и процедурном программировании (см. замечательный "Высокого уровня жемчуг", Mark Jason Dominus). У меня была некоторая информация это в функциональном...
вопрос задан: 26 February 2010 16:46
7
ответов

Как я проверяю, выполняет ли gcc оптимизацию хвостовой рекурсии?

Как я говорю, оптимизирует ли gcc (более конкретно, g ++) хвостовую рекурсию в конкретной функции? (Поскольку это подошло несколько раз: Я не хочу тестировать, если gcc может оптимизировать хвостовую рекурсию в...
вопрос задан: 23 May 2017 12:16
5
ответов

Генерация ряда Fibonacci в F#

Я только начинаю узнавать, что F# с помощью VS2010 и ниже является моей первой попыткой генерации ряда Fibonacci. То, что я пытаюсь сделать, должно создать список всех чисел меньше чем 400. позвольте fabList =...
вопрос задан: 4 March 2016 15:33
5
ответов

foldl является хвостовой рекурсивной, так почему же foldr работает быстрее, чем foldl?

Я хотел проверить сложение против сложения. Из того, что я видел, вы должны использовать foldl over foldr, когда это возможно, благодаря оптимизации рекурсии хвоста. Это имеет смысл. Тем не менее, после запуска этого теста я ...
вопрос задан: 21 October 2012 07:51
5
ответов

Хвостовая рекурсия в C++

Кто-то может показать мне простую рекурсивную функцию хвоста в C++? Почему хвостовая рекурсия лучше, если это даже? Что другие виды рекурсии там помимо хвостовой рекурсии?
вопрос задан: 22 April 2010 19:15
5
ответов

Есть ли проблемы, которые не могут быть записаны с помощью хвостовой рекурсии?

Хвостовая рекурсия является важной оптимизацией производительности stragegy на функциональных языках, потому что она позволяет рекурсивным вызовам использовать постоянный стек (а не O (n)). Есть ли любые проблемы это...
вопрос задан: 11 December 2009 15:26
5
ответов

Использование большой хвостовой рекурсии в Erlang замедляют его?

Я читал о Erlang в последнее время и как хвостовая рекурсия так в большой степени используется, из-за трудности использования итерационных циклов. Не делает этого высокого использования рекурсии, замедляют его, что с весь...
вопрос задан: 9 July 2009 18:21
5
ответов

Как хвостовая рекурсия Haskell работает?

Я записал этот отрывок кода, и я предполагаю, что len является рекурсивным хвостом, но переполнение стека все еще происходит. Что не так? myLength::-> Целочисленный myLength xs = len xs 0, где len [] l = l...
вопрос задан: 7 April 2009 19:34
4
ответа

Какие компиляторы C ++, если таковые имеются, выполняют оптимизацию хвостовой рекурсии?

Мне кажется, что было бы идеально работать для оптимизации хвостовой рекурсии как в C, так и в C ++, но при отладке я никогда не вижу стека фреймов, который указывает на эту оптимизацию. То есть ...
вопрос задан: 5 July 2018 21:06
4
ответа

JVM предотвращает оптимизацию последних вызовов?

Я видел эту кавычку по вопросу: Что такое хороший функциональный язык, на котором можно создать веб-сервис? Scala в особенности не поддерживает устранение последнего вызова кроме саморекурсивных функций...
вопрос задан: 23 May 2017 11:53
4
ответа

Предотвращение дублирования кода в F#

У меня есть два отрывка кода, который пытается преобразовать список плавающий в список Vector3 или Vector2. Идея состоит в том, чтобы взять 2/3 элементы за один раз из списка и объединить их как вектор. Конечный результат...
вопрос задан: 4 March 2016 20:01
4
ответа

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

Я плохо знаком с F# и читал о рекурсивных функциях хвоста и надеялся, что кто-то мог дать мне две различных реализации функционального нечто - то, которое является рекурсивным хвостом и тот, который не является так...
вопрос задан: 4 March 2016 15:13
4
ответа

Как я убегаю из цикла в Scala?

Как я вспыхиваю цикл? var largest=0 для (я <-999 к 1 на-1) {для (j <-i к 1 на-1) {val product=i*j, если (самый большой> продукт)//я хочу повредиться здесь...
вопрос задан: 2 November 2014 12:35
4
ответа

Что такое оптимизация вызовов?

Очень просто, что такое оптимизация хвостового вызова? В частности, может ли кто-нибудь показать небольшие фрагменты кода, где его можно применить, а где нет, с объяснением почему?
вопрос задан: 1 January 2014 15:02
4
ответа

Почему мы не можем переопределить хвостовые рекурсивные методы? [Дубликат]

Я начинающий программист в Scala, и я только начал писать свои первые рекурсивные функции. Однако, одна вещь все еще оставляет меня озадаченной, и это - Почему мы не можем переопределить хвостовой рекурсивный метод? ...
вопрос задан: 2 May 2013 17:50
4
ответа

Почему Clojure намного быстрее, чем Scala на рекурсивном добавляет функцию?

Друг дал мне этот фрагмент кода в Clojure (defn, сумма [стригут acc] (если (пустой? колледж) acc (повторяются (колледж отдыха) (+ (первый колледж) acc)))) (время (сумма (диапазон 1 9999999) 0)) и спросил меня, как это тарифицирует...
вопрос задан: 11 July 2012 23:11
4
ответа

Оптимизация вызовов на C

Я часто слышу, как люди говорят, что C не выполняет устранение хвостовых вызовов. Хотя это не гарантируется стандартом, разве это не выполняется на практике какой-либо достойной реализацией? Предполагая ...
вопрос задан: 18 August 2010 16:24
4
ответа

Комбинат запоминания и хвостовой рекурсии

Можно ли как-то совместить запоминание и хвостовую рекурсию? Сейчас я изучаю F # и понимаю обе концепции, но не могу их объединить. Предположим, у меня есть следующие памятки ...
вопрос задан: 11 August 2010 19:31
4
ответа

В то время как или Хвостовая рекурсия в F#, что использовать когда?

Хорошо, только что в F# и это - то, как я понимаю это теперь: Некоторые проблемы являются рекурсивными по своей природе (создание или чтение вслух древовидная структура для именования всего одной), и затем Вы используете рекурсию. В них...
вопрос задан: 25 November 2009 14:54
3
ответа

Почему не делает.NET/C#, оптимизируют для рекурсии последнего вызова?

Я нашел этот вопрос, о котором языки оптимизируют хвостовую рекурсию. Почему C# не оптимизирует хвостовую рекурсию, каждый раз, когда возможный? Для конкретного случая, почему этот метод не оптимизирован в цикл (...
вопрос задан: 23 May 2017 12:17
3
ответа

Предотвращение переполнения стека (с бесконечными последовательностями F# последовательностей)

У меня есть этот "код изучения", я записал для morris seq в f#, который страдает от переполнения стека, которое я не знаю, как избежать. "morris" возвращается, бесконечная последовательность "видят и говорят" последовательнос
вопрос задан: 4 March 2016 19:30
3
ответа

Scala поддерживает оптимизацию хвостовой рекурсии?

Scala поддерживает оптимизацию хвостовой рекурсии?
вопрос задан: 27 November 2011 15:27
3
ответа

Почему не может scalac оптимизировать хвостовую рекурсию в определенных сценариях?

Почему не делает scalac (компилятор Scala) оптимизируют хвостовую рекурсию? Код и вызовы компилятора, который демонстрирует это:> кошка foo.scala класс Foo {определение ifak (n: Интервал, acc: Интервал): Интервал = {если (n ==...
вопрос задан: 27 November 2011 15:27
3
ответа

Почему делает s ++ t не, приводят к переполнению стека для большого s?

Я задаюсь вопросом, почему Вводная часть> возглавляет $ реверса $ [1.. 10000000] ++ [99] 99 не приводит к ошибке переполнения стека. ++ во вводной части кажется прямым и non-tail-recursive: (++)::-&...
вопрос задан: 19 April 2011 02:58
3
ответа

цикл через две переменные в Haskell

Что haskell путь состоит в том, чтобы сделать это? для (интервал i = 0; я <1000; я ++) для (интервал j = 0; j <1000; j ++), мочат = нечто (я, j), #I нужно возвращаемое значение. Больше background:...
вопрос задан: 16 April 2011 19:43
3
ответа

Как я могу реализовать рекурсивный хвостом список, добавляют?

Простое добавляет функцию как это (в F#): позвольте rec приложению s t =, соответствуют s | []-> t | (x:: ss)-> x:: (приложение ss t), откажет, когда s становится большим, так как функция не является хвостом...
вопрос задан: 19 May 2010 16:33
3
ответа

iPhone dev — performSelector:withObject:afterDelay или NSTimer?

Для повторения вызова метода (или сообщение отправляют я предполагаю, что соответствующий термин), каждый x секунды, это лучше для использования NSTimer (scheduledTimerWithTimeInterval:target:selector:userInfo:repeats NSTIMER:)...
вопрос задан: 29 September 2009 01:48