вызвать Р (жизнь); жизнь и1: жизнь;
ГЕНЕРИРОВАТЬ (жизнь);
вызвать Р (сон);
сон и2: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться;
жизнь v: жизнь;
ГЕНЕРИРОВАТЬ (жизнь); * вернулись к значе
нию и1 жизнь *
жизнь
вызвать Р (сон); сон и3: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться; жизнь v: жизнь;
ГЕНЕРИРОВАТЬ (жизнь);
вызвать Р (сон);
сон и4: сон;
ГЕНЕРИРОВАТЬ (сон);
вернуться;
Как видим, жизнь сменяется сном, сон жизнью - и все повторяется вновь. Произведем следующее преобразование программы жизнь - сон: заменим везде слова жизнь на сон, а сон на жизнь. Тогда сон будет главной процедурой, периодически вызывающей жизнь. Получаем симметричную программу сон - жизнь. В ней жизнь - некоторый период, существующий внутри первого вызова сна. Какая из программ (жизнь - сон или сон - жизнь) адекватно моделирует действительность? Об этом много рассуждали философы от античности до наших дней. Все дело только в симметричной замене имен. Такое преобразование иногда используют как литературный прием. Для героя рассказа В. Брюсова "Теперь, когда я проснулся" главным был сон. В своих снах он безнаказанно совершал ужасные злодеяния. Это занятие так его увлекало, что он научился специально вызывать сны. Жизнь была только короткой необходимой подгоговкой ко сну и тоже воспринималась как этап сна. В итоге он в реальной жизни совершил кровавое убийство, думая, что все происходит во сне. Произошло несоответствие значений глбальной переменной, определяющей субъективное восприятие действительности, и локальной, задающей фазы реальности. У Борхеса в рассказе "Книга руин" маг снов в конце жизни понял, что он только призрак, который видится кому-то во сне. В том сне, начавшемся вызовом программы сон - жизнь, жизнь и сон мага были только подпрограммой процедуры ГЕНЕРИРОВАТЬ (сон). Граница между действительностью и сном может быть расплывчатой, не обозначенной четко. Поэтому часто авторы задают постепенную трансформацию значений тех или иных переменных в свою противоположность. Для моделирования подобных явлений необходимо вводить градацию степеней сна и ральности. Например, можно считать сон выражаемым отрицательным числом, а жизнь - положительным. Чем ближе сон к нулю, тем он ближе к жизни. И наоборот, жизнь переходит в сон, если значение жизни постоянно уменьшается. Если ввести несколько дополнительных переменных, легко модифицировать программу жизнь - сон таким образом, чтобы локальная сигнализирующая переменная и постепенно изменялась, переходила в свою противоположность. Если при этом значения v не менять, получим процесс, описывающий постепенное изменение жизни на сон, а сна на жизнь, и при этом человек в конце концов воспринимает себя во сне, а свою прошлую жизнь с удивлением осознает как сон. Такой эффект достигается в случае, если процедура ГЕНЕРИРОВАТЬ (сон) порождает текст, связанный с определенными событиями, временем и местом, а ГЕНЕРИРОВАТЬ (жизнь) порождает текст с другими атрибутами существования. Тогда в результате выполнения указанного преобразования человека со значением v, равным жизнь, вступает в процедуру ГЕНЕРИРОВАТЬ (сон). В силу ограниченности объема изложеиия мы не приводим подробное описание этой программы. Такое преобразование также описывалось в литературе. Пример - уже упоминавшийся рассказ Кортасара "Ночью, на спине, лицом кверху". Как задать постепенный переход одного объекта в другой мир, например объект из жизни включить в сон? Для этого нужно совершить следующие изменения в программе жизнь - сон. Локальная переменная и не затрагивается. Зато глобальная переменная, соответствующая бытию объекта, заменяется на две связанные компоненты. Первая свидетельствует о степени присутвия в жизни, а вторая определяет степень принадлежности ко сну. Каждый раз во время сна необходимо уменьшать первую компоненту и увеличивать вторую. Процедура ГЕНЕРИРОВАТЬ реагирует на эти изменения, порождая соответствуюшие описания погружений в сон. Отличие этого преобразования от предыдущего, описанного выше, в том, что меняется сам человек, а не мир. Аналогичным образом, выполняя согласованные действия с двумя двухкомпонентными переменными, можно добиться синхронной замены объектов из сна и жизни. Это распространенный прием в литературе. Иногда сон заменяется зеркалом или книгой. Аналогом сна выступает таинственное зазеркалье или текст волшебных книг. В рассказе Брюсова "Зеркало" с переменным успехом борются за право присутствия в мире две женщины - реальная и ее зеркальное отражение. В рассказе Кортасара "Аксолотль" человек, пристально наблюдающий в аквариуме неподвижное лицо водной личинки, вдруг ощущает себя поменявшимся с ней местами.
"Я видел очень близко, за стеклом, неподвижное лицо аксолотля. Без перехода, без удивления я увидел за стеклом свое лицо, вместо лица аксолотля увидел за стеклом свое лицо, увидел другую сторону стекла. Потом мое лицо отодвинулось, и я понял... Я был аксолотлем и теперь мгновенно узнал, что никакое понимание невозможно" (96).
Если в процедуре ГЕНЕРИРОВАТЬ (жизнь) описывать определенные события и с некоторым опережением задавать их в процедуре ГЕНЕРИРОВАТЬ (сон/зеркало), получим эффект вещих снов (зеркал, книг). Аналогичное можно выполнить и с прошлым. Если постепенно сближать описания событий в этих двух процедурах и в итоге генерировать один заключительный текст, получится как бы слияние предсказанного будущего (или известного прошлого) с настоящим. Подобный прием наблюдаем у многих писателей. Маркес в своем рекурсивном романе "Сто лет одиночества" заканчивает повествование эпизодом, когда последний из рода Буэндиа расшифровывает последние страницы волшебной книги Мелькиадеса, оказавшейся описанием событий рода Буэндиа и города Макондо. По мере приближения к концу поднимается ураган, тоже описанный в книге, и с последней строчкой все исчезает - город Макондо, род Буэндиа и вещая книга. Опять у Борхеса в рассказе "Чернильное зеркало" правитель зачарованно наблюдает собственную смерть в чернильном отражении. Когда палач в зазеркалье опускает меч на голову осужденного, правитель тоже падает мертвый. В "Мастере и Маргарите" Булгакова события прошлого алгоритмический модуль Иешуа - Пилат - вызываются из основной темы. Здесь действует одна рекурсивная процедура Р (х), функционирующая аналогично программе жизнь - сон. Процедура Р (Мастер и Маргарита) вызывает процедуру Р (Иешуа и Пилат). В конце все времена встречаются в последнем пристанище. Можно пойти дальше. Любые игры с переменными допустимы. Можно задавать независимые или зависимые друг от друга изменения локальных и глобальных переменных в программе жизнь - сон. Можно в качестве имен добавлять новые миры. Таким способом можно получать странные переходы жизни в сон,
============================================================
(96) Кортасар Х. Другое небо.- С. 70.
(97) Анисимов А. В. Информатика. Творчество. Рекурсия.- С, 136 - 151.
=====================================================
сна в жизнь, исчезновения и появления жизни или сна, другие измерения, метущееся мелькание или медленное таяние глобальных объектов среди снов и жизни. Это эксперименты для будущего XXI в. Путь указан. Таким образом, писатели и сны убетдают: бытие инвариантно относительно дискретно-непрерывных преобразований симметрии жизнь-сон-зеркало-жизнь. Все дело только в двух названиях, нескольких переменных величинах и законах их изменения. "Быть может, всемирная история - это история различной интонации при произнесении нескольких метафор" (98). Перейдем к рекурсивным снам. В процедуре Р (х) сон вызывается после сравнения локальной величины и со значением жизнь. Такое однозначное сравнение происходит только а случае абсолютно нормального функционирования процессов жизни и сна. Но часто механизм запуска сна задается более сложными законами; например, возможен вызов сна в процессе сна. Поэтому в описании программы жизнь - сон следует заменить условие ижизнь на предикат а(х), учитывающий и другие возможности вызова сна. Явное задание для этого предиката физиологам еще неизвестно.