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