# Диалектика изменяющего и трансформирующего действия Язык, отражающий диалектически реальный мир должен явно в общей форме различать две типа тэгов-действий: процесс и функция. Первое -- может приводить к разным результатам при одном порядке действий. Второе -- имеет всегда одно и то же завершение при одних и тех же входных данных (чистая функция). Введение чёткого онтологического различия между двумя формами действия в языке **prolet** позволяет добиться следующих диалектических эффектов: - _процесс_ — _форма практики_, зависящая от материи, времени и условий, может давать разные результаты при одинаковых шагах. - _функция_ — _форма чистого преобразования_, детерминированная, всегда дающая одинаковый результат при одинаковых входах. Это — не просто синтаксическое различие. Это — отражение диалектики необходимости и случайности, единства и борьбы противоположностей: материи и формы, практики и логики, времени и закона. ## ✅ Принятое положение В коде на языке **prolet** различаются два типа тэгов-действий : - `(прц ...)` — материальный процесс, зависящий от внешних условий, времени, состояния системы. - `(фн ...)` — чистое преобразование, не имеющее побочных эффектов, детерминированное, отвечающее критерию математической функции. ## 🔁 Диалектическое различие КАТЕГОРИЯ | ПРОЦЕСС | ФУНКЦИЯ ---|---|--- Природа | Материальный, исторически обусловленный | Формальный, логически детерминированный Зависимость от времени | Да: каждый запуск — новый момент | Нет: время не влияет Побочные эффекты | Допустимы (запись, отправка, изменение)| Запрещены Детерминированность | Нет: может зависеть от шлюзов, состояния | Да: одинаковые входы → одинаковые выходы Онтологический статус|Практика, действие, изменение|Закон преобразования Аналог в реальности|Работа завода, регистрация пользователя|Формула: f(x) = x² 💬 Процесс — это диалектика материи в движении. Функция — это закон, выделенный из практики. ## ✅ Форма объявления: процесс ```prolet (прц ОтправитьУведомление (пользователь @фикс Пользователь сообщение @фикс Сообщение) -> @фикс Результат КодОшибки (если (ПроверитьАктивность пользователь) тогда ((ПодготовитьСообщение сообщение) (ОтправитьЧерезПочту (ПолучитьПочту пользователь) сообщение) (ЗаписатьЖурнал "Уведомление отправлено")) ) ) ``` ### Семантика процесса Может возвращать разные результаты при одинаковых `пользователь` и `сообщение`: - почта упала, - email изменился, - пользователь деактивирован. Имеет побочные эффекты: - запись в журнал, - отправка. Зависит от времени и состояния системы. ❗ Это — _не функция_, а _практика социального взаимодействия_. ## ✅ Форма объявления: функция ```prolet (фн ПолучитьКвадрат (x @фикс Число) -> @фикс Число) (Умножить x x)) (фн ФорматироватьИмя (имя @фикс Имя фамилия @фикс Фамилия) -> @фикс Текст) (Соединить фамилия " " имя)) ``` ### Семантика функции - При одинаковых `x` всегда вернёт одинаковый результат. - Нет побочных эффектов: не пишет, не отправляет, не изменяет. - Не зависит от времени, состояния, внешних условий. - Может быть вычислена в любой момент, _даже заранее_. ✅ Это — чистое преобразование, заимствованное из логического дискурса, но вписанное в практику как инструмент. ## 📜 Онтологические правила `prolet` ПРАВИЛО|ФОРМУЛИРОВКА ---|--- 1|процесс -- действие, зависящее от материи и времени, может давать разные результаты 2|функция -- чистое преобразование, всегда одинаковый результат при одинаковых входах 3|функция не может вызывать процесс (иначе — не чистая) 4|процесс может использовать функцию (как инструмент преобразования) 5|функция не имеет побочных эффектов 6|процесс может иметь побочные эффекты (запись, отправка, изменение) 7|функция может быть встроена в процесс, но не наоборот ## 🔄 Пример: процесс, использующий функцию ```prolet (прц ОбновитьПрофиль (пользователь @мут Пользователь имя_новое @фикс Имя фамилия_новая @фикс Фамилия) -> Результат (если (ПроверитьПрава пользователь) тогда ( ((ФорматироватьИмя имя_новое фамилия_новая) -> полноеИмя @фикс) (СохранитьБаза пользователь полноеИмя)) ) ) ``` Здесь: - ФорматироватьИмя — функция, чистая, детерминированная. - ОбновитьПрофиль — процесс, зависит от прав, состояния базы, времени. ## 💡 Философское обоснование Нотация следует духу диалектического материализма: - Материя первична — процесс отражает её движение. - Форма вторична — функция — идеализация, выделенная из практики. - Но форма может служить практике — функция используется внутри процесса. - Но не наоборот — практика не может быть сведена к форме. ## 💬 «Функция — как формула в голове инженера - Процесс — как работа завода. - Формула помогает управлять заводом, - но завод не сводится к формуле. ## 🏁 Заключение В этой части установлено ключевое онтологическое различие: - функция — закон преобразования, выделенный из практики, но не зависящий от неё. - процесс — реализация практики, зависящая от материи, времени, случайностей. `prolet` больше не смешивает форму и содержание. Он разделяет их — чтобы соединить на высшем уровне.