Результаты поиска по запросу "tail-recursion"

4 ответа

У Haskell есть хвостовая рекурсивная оптимизация?

Я обнаружил команду «time» в unix сегодня и подумал, что буду использовать ее для проверки разницы во времени выполнения между хвостовой и обычной рекурсивной функциями в Haskell. Я написал следующие функции: --tail recursive fac :: (Integral ...

4 ответа

У Haskell есть хвостовая рекурсивная оптимизация?

Я обнаружилвремя" Команда в Unix сегодня и думал, что яd использовать его для проверки разницы во времени выполнения между хвостово-рекурсивными и обычн...

2 ответа

Можно ли считать функцию F # хвостовой рекурсивной, она использует код операции TailCall .net

Так как .net имеетTailCall [http://msdn.microsoft.com/en-us/library/system.reflection.emit.opcodes.tailcall.aspx] код операции, это можно использовать для определения, если функция F # действительно хвостовая рекурсивная? Если это правда, ...

ТОП публикаций

1 ответ

Переполнение при использовании recur в clojure

У меня есть простой калькулятор простых чисел в clojure (неэффективный алгоритм, но я просто сейчас пытаюсь понять поведение повторения). Код: (defn divisible [x,y] (= 0 (mod x y))) (defn naive-primes [primes candidates] (if (seq candidates) ...

2 ответа

Почему моя хвостовая рекурсия Scala быстрее, чем цикл while?

Вот два решения упражнения 4.9 в Scala Кей Хорстманна для нетерпеливых: «Напишите функцию lteqgt (values: Array [Int], v: Int), которая возвращает тройку, содержащую число значений меньше v, равное v, и больше, чем v. " Один использует хвостовую ...

8 ответов

Разделение списка элементов на два списка нечетных и четных проиндексированных элементов

Я хотел бы сделать функцию, которая принимает список и возвращает два списка: первый содержит каждый нечетный элемент, а второй содержит каждый четный элемент. Например, учитывая[1;2;4;6;7;9]Я хотел бы вернуться[ [1;4;7] ; [2;6;9] ]. Я написал ...

2 ответа

F # против OCaml: переполнение стека

Я недавно нашел презентацию оF # для программистов на Python [http://combiol.org/fs/FSUG_FS4PPv2.pptx]и, посмотрев его, решил самостоятельно реализовать решение «муравьиной головоломки». Есть муравей, который может ходить по плоской сетке. ...

2 ответа

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

Я кодировал 3 факторных алгоритма: Во-первых, я ожидаю провала из-за переполнения стека. Нет проблем.Во вторых я стараюсьрекурсивный вызов, преобразуйте предыдущий алгоритм из рекурсивного в итеративный.Это не работает, но я не понимаю, ...

2 ответа

Большое спасибо за просмотр этого Томаса. Однако, как говорит kvb, это вызывает немного больше вопросов, чем ответов. В частности, есть ли что-то в выражениях вычислений, из-за которых компилятор теряет "хвостовую рекурсивность" функций, написанных с использованием bind, если bind не записан в стиле передачи продолжения? Значит ли это, что любой построитель вычислений в реальном мире должен проходить мимо?

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

2 ответа

 медленнее, на самом деле это будет иметь поведение O (n ^ 2), которого следует избегать, как ад. Если вы не хотите использовать реверс, просто используйте рекурсивное тело вместо хвостового и не используйте

ичок в изучении Erlang. После прочтения о списочном понимании и рекурсии в Erlang, я хотел попробовать реализовать свой собственныйmap функция, которая получилась так: % Map: Map all elements in a list by a function map(List,Fun) ...