Результаты поиска по запросу "tail-recursion"
Преобразовать нормальную рекурсию в хвостовую рекурсию
Мне было интересно, если есть какой-то общий метод для преобразования "нормальной" рекурсии сfoo(...) + foo(...) как последний вызов хвостовой рекурсии. Например (scala): def pascal(c: Int, r: Int): Int = { if (c == 0 || c == r) 1 else pascal(c ...
Можно ли переписать все рекурсивные функции как хвостовые рекурсии? [Дубликат]
Possible Duplicate: Are there problems that cannot be written using tail recursion? Насколько я понимаю, хвостовая рекурсия - это оптимизация, котору...
Что такое оптимизация вызовов?
Очень просто, что такое оптимизация хвостового вызова? В частности, может ли кто-нибудь показать небольшие фрагменты кода, где его можно применить, а где нет...
Вы можете обработать входные данные, которые приведут к переполнению стека из-за слишком глубокой рекурсии вызовов этой функции, если не было никакой оптимизации, и посмотрите, произойдет ли это. Конечно, это не тривиально, и иногда достаточно большие входные данные заставят функцию работать недопустимо долго.
не узнать, оптимизирует ли gcc (точнее, g ++) хвостовую рекурсию?в определенной функции? (Потому что это возникало несколько раз: я не хочу проверять, может ли gcc оптимизировать хвостовую рекурсию в целом. Я хочу знать, оптимизирует ли ...
Разделение списка элементов на два списка нечетных и четных проиндексированных элементов
Я хотел бы сделать функцию, которая принимает список и возвращает два списка: первый содержит каждый нечетный элемент, а второй содержит каждый четный элемент. Например, учитывая[1;2;4;6;7;9]Я хотел бы вернуться[ [1;4;7] ; [2;6;9] ]. Я написал ...
рекурсивные функции Эрланга - это не просто goto?
Просто чтобы получить это прямо в моей голове. Рассмотрим этот пример немного кода Erlang: test() -> receive {From, whatever} -> %% do something test(); {From, somethingelse} -> %% do something else test(); end.Разве тест () не ...
Как мне выйти из цикла в Scala?
Как мне разорвать петлю?