Бесконечность не предел... Звучит вызывающе! А речь - о том, что переменная не принимает значение числа, но бесконечно близко к нему приближается. "Не принимает значение числа" - это как это?
Лучше понимается на примере в программировании. Вот у нас есть набор инструкций, которые поочередно исполняют в процессе вызова. Это - т.н тело функции. Другими словами, тело функции - это составной оператор, содержащий операторы, которые определяют выполняемые функцией действия. Переменные, объявленные в теле функции, называются локальными. Вот они исчезают из области видимости при выходе из функции, поэтому функция никогда не должна возвращать ссылку на локальную переменную. В этом смысле, бесконечность функции - не предел. А предел - рекурсия.
Локальные переменные делают возможной рекурсию. Это означает, что если функция рекурсивно вызывает сама себя, то переменные каждый раз создаются заново.
Рекурсия - это функция, которая вызывает саму себя. Представим, что есть функция А, которая выполняет определённое действие, - например, перемножает два значения. Внутри этой функции А в качестве одного из значений для умножения возьмём ту же самую функцию А. Получается, что функция умножает число на саму себя и внутри ещё раз умножает число на саму себя и так далее, до бесконечности или выполнения определённого условия.
Более наглядно: Представим, что есть функция хочу быть царём. Если б я был царём... Сталиным или Путиным, которая выполняет определённое действие, - например, уничтожает полчища врагов. Внутри этой функции в качестве одного из значений для уничтожения врага возьмём ту же самую функцию - уничтожение того, кто мешает уничтожению. Получается, что функция умножает врагов на саму себя и внутри ещё раз умножает врагов на саму себя и так далее, до бесконечности или выполнения определённого условия.
Рекурсия немного похожа на цикл, который тоже позволяет несколько раз повторить одно и то же действие. Но внутри цикла функция не вызывается, только прописываются различные условия. И у них есть преимущества перед циклами - короче и проще. Например, принцип "Разделяй и властвуй" - самое популярное и частое применение для рекурсии. А вот если забыть прописать условие выхода, рекурсия будет выполняться бесконечно - это бесконечный цикл, т. е. когда функция вызывает саму себя... и никогда не может остановиться - программу тогда придётся завершать принудительно. Условие это выполняется просто, например, каждый раз, как функция вызывает саму себя, должна формироваться последовательность все меньших и меньших задач, в конце сводящихся к базовой задаче. Если функция вызывается для решения базовой задачи, она возвращает результат. Если функция вызывается для решения более сложной задачи, она делит эту задачу на две
части: одну часть, которую функция умеет решать, и другую, которую функция решать не умеет.
Какую функцию у нас смог решить Сталин, потом ее утратили? И какую пытается решить Путин?
Сделать страну великой державой, т.е той, которой принадлежит определяющая роль в системе международных и международно-правовых отношений. В научный оборот эта фраза была введена немецким историком Леопольдом фон Ранке, в 1833 году опубликовавшим фундаментальную работу под названием "Великие державы". Изначально статус "великих держав" впервые получил формальное признание на Венском конгрессе 1814-1815 гг. С созданием Священного союза, данный статус укрепился за четырьмя странами - участницами антифранцузской коалиции - Великобритания, Австрия, Пруссия, Россия, а с 1818 года - также за Францией.
На данный момент к великим державам по факту относятся как минимум Китай и США. Кроме того, к великим державам в наше время, как правило, относят Францию и Великобританию, так как они сохранили относительно дееспособный военный флот и оказывают существенное влияние на дела многих своих бывших колоний по всему миру. Также, к числу великих держав часто относят Россию, так как она имеет влияние на страны ОДКБ. Одним из наиболее распространённых критериев великодержавного статуса в современном мире считается постоянное участие в Совете безопасности ООН и обладание правом вето. В состав постоянных членов Совбеза ООН входят Великобритания, Китай, Россия, США и Франция. Вот!
Кто обладал правом вето в Древнем Риме?
Каждый трибун имел очень важное право. Оно называлось правом вето. Это значит, что если Сенат хотел принять закон, который нарушал интересы плебеев, трибуну достаточно было громко произнести слово: "Вето!", что по-латински значит "запрещаю", и закон отклонялся.
Обладание правом вето делает сегодня страну великой. А пока эта функция не решаема, функция умножает врагов на саму себя и внутри ещё раз умножает врагов на саму себя и так далее, до бесконечности или...
Но Россия обладает правом вето!
Значит это не локальная переменная, вызывающая рекурсию. А ведь рекурсия есть? Есть!
Напомню - локальные переменные исчезают из области видимости при выходе из функции, поэтому функция никогда не должна возвращать ссылку на локальную переменную. Локальные переменные доступны только внутри функции в которой они были объявлены. В отличие от глобальных переменных, которые существуют всегда в одном экземпляре, локальные переменные создаются каждый раз при вызове функции и удаляются при завершении её работы.
Что же это за херня такая, что исчезает из области видимости Совета Безопасности ООН и стран с правом орать: "Вето!", которая создаётся каждый раз при вызове функции орать: "Вето!" и удаляются после того как проорали?
Вообще говоря, в программирование говорят в таком случае о функции, которая будет создавать призрака на месте его смерти.
Рассуждаем:
Инициализация локальной переменной производится каждый раз при вызове соответствующей функции. Локальные переменные располагаются во временной области памяти соответствующей функции. И это может привести к нехватке памяти при очередном вызове функции "Вето!", такая ситуация называется переполнением стека.
Поэтому для больших локальных данных в программировании используют динамическую память - при выходе из функции под локальные нужды выделяются команды производить освобождение памяти (delete (отменить орать "Вето!") или wait (подождать орать "Вето!") cо всякими премудростями).
В политике отменить орать "Вето!" - это когда великая держава перестает быть "великой", а подождать орать "Вето!" - это прокрастинация (от англ. procrastination "откладывание", "промедление"; от лат. procrastinatio с тем же значением, восходит к cras "завтра" или crastinum "завтрашний" + pro- "для, ради") - в психологии склонность к постоянному откладыванию даже важных и срочных дел, приводящая к жизненным проблемам и болезненным психологическим эффектам.
Прокрастинировать - это создавать иллюзию действия и замещать выполнение необходимого дела чем-то другим.
Вот такая у нас локальная переменная - переменная функции, которая будет создавать призрака на месте его смерти.
Вся политика национальных государств с ядерным потенциалом, в основном и дающим право орать "Вето""- это прокрастинация, т.е откладывание решения национальных проблем. Как в России, так и во всем мире.
Главная причина возникновения прокрастинации - попытка человека/страны неосознанно избежать неприятных эмоций и переживаний, которые вызывает в нём откладываемое дело или решение.
Типичная схема прокрастинации выглядит так: ты думаешь о чём-то сложном или неприятном → возбуждаются болевые центры мозга → ты меняешь фокус внимания на что-то более приятное → испытываешь временное облегчение от того, что удалось избавиться от дискомфорта.
А чего самое неприятное? Лично для меня - признание вины. Для таких случаев необходим психоанализ или психоаналитическая терапия, тут прокрастинация связана с бессознательным.
В основе бессознательной прокрастинации лежит призрак - незаметный внутренний конфликт - борются две силы: одна - амбициозная, требующая достижений, результата, успеха, другая - не желающая подчиняться этому требованию, саботирующая его. Первая сила ассоциируется с родительскими ожиданиями, авторитетными наставниками и начальством. Вторая - с детскими реакциями на давление и принуждение, желанием ребенка не признавать себя виновным в том, в чем его обвиняют.