Подробнее
ххх: А можешь мне, как гуманитарию, объяснить разницу между бесконечным циклом и бесконечной рекурсией? ууу: Но вот смотри: У царя был двор, во дворе стоял кол, На колу мочало, начинай сначала - это бесконечный цикл ууу: У попа была собака, он ее любил Она съела кусок мяса - он ее убил В яму закопал, крест поставил, написал: ... - это бесконечная рекурсия
башорг,лучшие цитаты и комиксы с башорга (баш, bash.im),geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Хотя умение объяснять вообще-то как бы главное профессиональное требование.
Разве рекурсия не является более оптимизированной чем цикл?
https://ru.wikipedia.org/wiki/Хвостовая_рекурсия
У попа помимо собаки, была неупоминаемая бесконечная тетрадочка, в которую он записывал свои похождения, дабы когда-нибудь после вечности записать получившийся бесконечный трактат на могильной плите. Так что он мог убить собак сам, а не переносить ответственность на его персонажа во вложенном рассказе.
Цикл - это повторение чего-то (1), рекурсия - тоже, но в ней каждое следующее повторение вложено в предыдущее (2).
Черный прямоугольник - повторяющийся блок, внутри него могут быть операции, текст "у попа была собака" или еще что-нибудь - синий прямоугольник.
Хвостовая рекурсия:
Если в рекурсии каждый следующий блок вставляется в самый конец предыдущего, то по сути полезные действия (синий прямоугольник) выполняются так же, как и в цикле. Тогда рекурсию (2) можно заменить циклом (1).
В (3) тоже рекурсия, но блоки вкладываются в середину, а не в конец, поэтому порядок полезных операций другой, и его циклом (1) заменить нельзя.
Почему она лучше:
Во время выполнения любой программы, когда выполняются действия из какого-то конкретного синего прямоугольника в памяти хранятся все блоки, в которые он вложен. Это называется стеком вызовов, его размер ограничен. В случае (2) и (3) если нужно 100 повторений, то в стеке будет храниться максимум 100 вызовов. В случае (1) в стеке будет максимум 1 вызов.
В общем есть такая проблема, читаю себе Реактор, какой-нибудь длинный тред, тут меня куда-то отвлекли/стал читать другую вкладку браузера/куда-то вышел на полчаса. Потом вернулся, опять открыл вкладку с Реактором и продолжил читать тот же тред, захотелось кому-то поставить "плюсик" или "минус", но страница подвисает, приходится полностью закрывать вкладку с Реактором, затем снова открывать и искать тот тред.
Вариант с обновлением страницы тоже не вариант, т.к. после обновления, на этой странице уже совсем другие посты и тред все равно теряется.
Такая проблема на различных конфигурациях компьютера, различных ОС (ХР, 7, 10 и Андроид в том числе) и различных браузерах.
Можно ли это как-то побороть?