Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Пытливый on October 07, 2017, 09:26:44 PM

Title: Рекурсия возможна?
Post by: Пытливый on October 07, 2017, 09:26:44 PM
Не работает такой код. Вроде и стек имитирую, а вот не хочет работать :( Ошибка при вызове функции Pop
Code: [Select]
sub(Recursion, $Var)
 print($Var)
 if ($Var > 0)
ArrPush($AVar, $Var)
Recursion($Var-1)
$Var = ArrPop($AVar)
 end_if
end_sub

Recursion(10)
Title: Re: Рекурсия возможна?
Post by: Пытливый on October 08, 2017, 11:29:37 AM
Что-то не нашел я в справке ничего о предварительном описании заголовков подпрограмм. Как это выглядит? Примерчик такого описания можно увидеть?
Title: Re: Рекурсия возможна?
Post by: Oraven on October 08, 2017, 11:46:42 AM
Нельзя писать вызов подпрограммы в ней самой же, только ниже описания! Рекурсия невозможна.
Title: Re: Рекурсия возможна?
Post by: Oraven on October 08, 2017, 01:40:36 PM
Очевидно что вопрос "Рекурсия возможна?" относится к кликерману. В последних версиях рекурсия невозможна. В старых версиях, когда был еще вызов GOSUB, подпрограмму можно было вызывать из неё самой.
Title: Re: Рекурсия возможна?
Post by: Пытливый on October 08, 2017, 03:41:14 PM
Quote
Название темы не соответствует содержанию.
Несколько странное утверждение. Мы на форуме по Кликерману и вопросы на этом форуме предполагают именно его использование.
Quote
но зачем пытаться вызывать подпрограмму внутри собственного описания?
Рекурсия подразумевает вызов самой себя при описании. Что-то иное рекурсией не является.
Ну что-же, ответ я получил, хотя и не такой как хотелось бы. Тему думаю можно закрыть.