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

6 ответов

Преобразовать нормальную рекурсию в хвостовую рекурсию

Мне было интересно, если есть какой-то общий метод для преобразования "нормальной" рекурсии сfoo(...) + foo(...) как последний вызов хвостовой рекурсии. Например (scala): def pascal(c: Int, r: Int): Int = { if (c == 0 || c == r) 1 else pascal(c ...

7 ответов

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

Possible Duplicate: Are there problems that cannot be written using tail recursion? Насколько я понимаю, хвостовая рекурсия - это оптимизация, котору...

8 ответов

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

Очень просто, что такое оптимизация хвостового вызова? В частности, может ли кто-нибудь показать небольшие фрагменты кода, где его можно применить, а где нет...

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

8 ответов

Вы можете обработать входные данные, которые приведут к переполнению стека из-за слишком глубокой рекурсии вызовов этой функции, если не было никакой оптимизации, и посмотрите, произойдет ли это. Конечно, это не тривиально, и иногда достаточно большие входные данные заставят функцию работать недопустимо долго.

не узнать, оптимизирует ли gcc (точнее, g ++) хвостовую рекурсию?в определенной функции? (Потому что это возникало несколько раз: я не хочу проверять, может ли gcc оптимизировать хвостовую рекурсию в целом. Я хочу знать, оптимизирует ли ...

8 ответов

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

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

9 ответов

рекурсивные функции Эрланга - это не просто goto?

9 ответов

рекурсивные функции Эрланга - это не просто goto?

Просто чтобы получить это прямо в моей голове. Рассмотрим этот пример немного кода Erlang: test() -> receive {From, whatever} -> %% do something test(); {From, somethingelse} -> %% do something else test(); end.Разве тест () не ...

18 ответов

Как мне выйти из цикла в Scala?

Как мне разорвать петлю?