Показать сообщение отдельно
Старый 06.05.2009, 11:39
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от GBee Посмотреть сообщение
Вариант Silin'a сойдет за косвенную рекурсию :о) Хотя даже и за нормальную сойдет.
Эээм. Ну как бы раскомментируйте рекурсивный вызов, закомментировав setTimeout и Вы поймете в чем разница между рекурсией и нерекурсией.

Код AS3:
var i:uint = 0;
var arr:Array = ["a", "b", "c", "d"];
 
function iterate():void
{
	trace(i+":"+arr[i]);
	i++;
	if (i < arr.length)
	{
		setTimeout(iterate, 100);
		//iterate();
	} else {
		trace(new Error().getStackTrace() )
	}
 
}
iterate();
UPD. Начальник переубедил. Это рекурсия. Сложная. Но хорошая, потому что не переполняет стек.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 06.05.2009 в 12:53.