1) Фактические параметры принято называть АГРУМЕНТАМИ функции.
2) В ней есть вызов функции самой на себя.
Когда это полезно:
Например функция удаления папок - а что если в этой папке есть вложенные папки, а в тех вложенные папках есть еще папки? К примеру Total Commander, FileZilа работают по такому принципу - они удаляют / переименовывают рекурсивно.
Реализация на PHP будет выглядеть примерно так:
function rm_dir($dir)
{
$dir = scandir($dir); // <-- получить список папок в качестве массива
foreach($dir as $item){ // <-- начать итерацию
if ( is_dir($item) ) { // <-- в случае если текущая папка содержит под-каталоги
rm_dir(); // <-- вызвать саму себя
} else {
rmdir($item); // <-- реализация самой функции
}
}
}
Что бы было если бы не было рекурсии:
Пришлось бы писать вложенными циклами с проверкой на условия - что ведет к дупликации и наростанию кода.
Недостатки.
Рекурсия "поедат" экспотенциально оперативную память по мере наростания суб-задач.
--------------
Мешает работать функции с глобальными параметрами - Паттерны проектирования ПО, ООП
Глобальные переменные ДОЛЖНЫ использоватся в процедурном коде.
А процедурный код, ИМХО, - ацтой
Другие языки программирования и технологии
Есть ли фактические параметры в рекурсивной функции? В ней же нет вызова функции?
Функция в некоторых языках обязана возвращать значение, но ничто не мешает функции работать с глобальным параметром, если есть глобальные переменные.
Возьми хотбы слово это переведи с грехом пополам. ) Re:....
что вы имеете ввиду? рекурсивная функция, она на то и рекурсивная, что вызывает саму себя
int fuck(int n)
{
if (n == 0) //Условие выхода из рекурсии
return 1;
return n*fuck(n - 1); вызов функции
}
fuck(r) r- фактический параметр
где непонятно?
{
if (n == 0) //Условие выхода из рекурсии
return 1;
return n*fuck(n - 1); вызов функции
}
fuck(r) r- фактический параметр
где непонятно?
Похожие вопросы
- Не могу понять каким образом работает return в рекурсивной функции?
- Помогите мне с рекурсивной функцией!
- Вызов функции в Си
- Что такое глобальные, формальные, локальные, фактические параметры в информатике. Turbo Pascal.
- Замедляет ли работу программы многократный вызов функции? Си
- Функция родительский контроль в гугл. Хэш-функция?
- Вопрос насчет объявления и параметра функции в C++
- Fasm, вызов WinAPI функций
- Как передать функцию в качестве параметра другой функции на C++?
- Оконное приложение на WinAPI, вопрос про параметры функции WndProc. Язык программирования Си.