Применительно к рисунку №1 каждый из пронумерованных кружочков соответствует определенному действию, иногда совокупности упорядоченный действий (алгоритму). Стрелочки внутри окружности указывают порядок выполнения действий. Стрелочки, приходящие из-за пределов круга, несут в себе данные, присущие внешним объектам. Обратите внимание, внутри системы (в пределах круга) в явном виде нет никаких объектов, а есть цепочка их трансформаций. И это важно! Внутри протекают только процессы, а обучение – это изменение порядка протекания процессов применительно к постоянно модифицируемым ими свойствам объектов. Эта способность обучения заменяет память. Изменилась структура протекания процессов – изменилась память о прошлом, изменилось прошлое, предназначенное настоящему. Системе, устроенной подобным образом, память и не нужна. Зачем? Если к результату можно придти сколь угодно много раз, просто повторяя процессы по соответствующим правильно подобранным входным воздействиям. Наличие памяти может быть полезно только в том смысле, что благодаря ей можно будет лениться, беречь энергию и не гонять процессы, а сразу вытащить готовый результат. Функция, позволяющая вытаскивать готовый результат, в функциональном программировании называется мемо-функцией. При наличии в системе мемо-функций, каждый из кружочков рис. 1 должен сопровождаться набором «квадратиков» для хранения образов ранее им полученных результатов. Но подобная память на мемо-функциях чревата опасностями. В динамично изменяемом мире нет и никогда не будет гарантий, что результат тысячного поцелуя окажется точно таким же, как и у первых 999. Самостоятельное произнесение миллион раз звука «Ом» не сравнится с прослушиванием зацикленной его записи на плеере. Что прятать впечатления в кубышку памяти, что создавать их каждый раз заново – и в том и в другом случае по ходу жизни можно получить по «морде лица». Попробуем формализовать описание рисунка №1, используя XML-формат. <Объект> <Свойство №1> <Действие №1> <Действие №2> <Действие №3> … </Свойство №1> <Свойство №2> <Действие №1> </Свойство №2> … <Свойство №n> <Действие №i> </Свойство №n> </Объект> Вот так сегодня мы описали наши объекты, если бы использовали классику объектно-ориентированного подхода. Однако в предложенном описании нет главного, того, что представлено на рис. 1, – связей между Действиями и вариантов альтернативных действий из некоего множества равносильных действий, ибо понятно, что один и тот же результат можно получить разными способами. Кроме того, совершение определенного действия, выполнение порученного ДЕЛА может привести и к тому, что у объекта появится новое свойство, более того, возможно и порождение нового объекта. И этот вариант тоже обязан быть отражен в формальной записи. Все эти превращения должны стать переходом от одного действия к другому, от одного дела к другому. — 129 —
|