Browse Source

Добавления

SVI 6 months ago
parent
commit
468a4588f0
2 changed files with 146 additions and 0 deletions
  1. 1 0
      README.md
  2. 145 0
      docs/prolet-012.md

+ 1 - 0
README.md

@@ -16,6 +16,7 @@
 - [Диалектическая несостоятельность nil](./docs/prolet-009.md)
 - [Диалектическая онтология типов](./docs/prolet-010.md)
 - [Диалектика становления](./docs/prolet-011.md)
+- [Диалектика изменяющего и трансформирующего действия](./docs/prolet-012.md)
 - Атомы языка
 - ВМ
 - Система типов

+ 145 - 0
docs/prolet-012.md

@@ -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` больше не смешивает форму и содержание.
+
+Он разделяет их — чтобы соединить на высшем уровне.