Cтраница 1
Косвенная рекурсия означает, что одна процедура вызывает другую процедуру, а это в свою очередь прямо или косвенно приводит к вызову первоначальной процедуры. [1]
В случае косвенной рекурсии возникает проблема: как и где описать вызываемый модуль. [2]
Все сказанное выше будет также верно и для так называемой косвенной рекурсии - когда подпрограмма А вызывает подпрограмму В, а в В содержится вызов А. [3]
Алгоритм рисования кривых Серпинского, представленный ранее, включает в себя и множественную, и косвенную рекурсию. Поскольку алгоритм состоит из четырех подпрограмм, которые вызывают друг друга, нельзя просто пронумеровать важные строки программы, как в случае с алгоритмом Гильбертовых кривых. [4]
Рекурсивные процедуры и функции ( модули) имеют одну из двух форм: прямую рекурсию и косвенную рекурсию. В первом случае модуль содержит оператор вызова этого же модуля, как в приведенной выше процедуре REVERSE. Во втором случае один мо дуль вызывает какой-либо другой модуль, который либо сам либо посредством других модулей вызывает исходный модуль. [5]
В, являющейся копией объекта С, имеющего в качестве компоненты указанное выше имя А. Иными словами, исключается косвенная рекурсия в определениях. [6]
Методы, описанные в предыдущем разделе, используются, когда алгоритм содержит многократную или косвенную рекурсию. [7]
В рассмотренных выше случаях процедуры или функции вызывали себя сами, это называется прямой рекурсией. Кроме того, процедура Р может вызывать процедуру Q, которая в свою очередь вызывает процедуру Р: это называется косвенной рекурсией. Ниже приведен пример, в котором используется косвенная рекурсия. [8]
В рассмотренных выше случаях процедуры или функции вызывали себя сами, это называется прямой рекурсией. Кроме того, процедура Р может вызывать процедуру Q, которая в свою очередь вызывает процедуру Р: это называется косвенной рекурсией. Ниже приведен пример, в котором используется косвенная рекурсия. [9]
Тот факт, что АЛГОЛ допускает рекурсию, вызван разнообразными причинами, поскольку нужда в рекурсии при решении задач численного анализа не столь очевидна. Некоторые приверженцы АЛГОЛа утверждают, что наличие рекурсии является его основным преимуществом перед другими языками типа ФОРТРАНа. Хотя это утверждение и справедливо для рекурсивно определенных функций, оно неверно для рекурсивного использования процедур ( иногда называемого косвенной рекурсией), которое, как мы видели, имеет важное значение для численного анализа. [10]
Тот факт, что АЛГОЛ допускает рекурсию, вызван разнообразными причинами, поскольку нужда в рекурсии при решении задач численного анализа не столь очевидна. Некоторые приверженцы АЛГОЛа утверждают, что наличие рекурсии является его основным преимуществом перед другими языками типа ФОРТРАНа. Хотя это утверждение и справедливо для рекурсивно определенных функций, оно неверно для рекурсивного использования процедур ( иногда называемого косвенной рекурсией), которое, как мы видели, имеет важное значение для численного анализа. [11]
Рекурсивная процедура может выполняться косвенно, вызывая вторую процедуру, которая, в свою очередь, вызывает первую. Алгоритм кривых Серпинского, рассматриваемый в главе 5, включает в себя четыре процедуры, которые являются одновременно и многократной и косвенной рекурсией. Каждая из этих процедур вызывает себя и три другие процедуры до четырех раз. [12]
Функция может вызывать самое себя. Это называется рекурсией, которая может быть прямой или косвенной. Когда функция вызывает самое себя, речь идет о прямой рекурсии. Если же функция вызывает другую функцию, которая затем вызывает первую, то в этом случае имеет место косвенная рекурсия. [13]