Author Topic: Рекурсия возможна?  (Read 1453 times)

0 Members and 1 Guest are viewing this topic.

Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Рекурсия возможна?
« 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)

Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: Рекурсия возможна?
« Reply #1 on: October 08, 2017, 11:29:37 AM »
Что-то не нашел я в справке ничего о предварительном описании заголовков подпрограмм. Как это выглядит? Примерчик такого описания можно увидеть?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Рекурсия возможна?
« Reply #2 on: October 08, 2017, 11:46:42 AM »
Нельзя писать вызов подпрограммы в ней самой же, только ниже описания! Рекурсия невозможна.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Рекурсия возможна?
« Reply #3 on: October 08, 2017, 01:40:36 PM »
Очевидно что вопрос "Рекурсия возможна?" относится к кликерману. В последних версиях рекурсия невозможна. В старых версиях, когда был еще вызов GOSUB, подпрограмму можно было вызывать из неё самой.

Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Re: Рекурсия возможна?
« Reply #4 on: October 08, 2017, 03:41:14 PM »
Quote
Название темы не соответствует содержанию.
Несколько странное утверждение. Мы на форуме по Кликерману и вопросы на этом форуме предполагают именно его использование.
Quote
но зачем пытаться вызывать подпрограмму внутри собственного описания?
Рекурсия подразумевает вызов самой себя при описании. Что-то иное рекурсией не является.
Ну что-же, ответ я получил, хотя и не такой как хотелось бы. Тему думаю можно закрыть.