prolet-012.md 8.9 KB

Диалектика изменяющего и трансформирующего действия

Язык, отражающий диалектически реальный мир должен явно в общей форме различать две типа тэгов-действий: процесс и функция.

Первое -- может приводить к разным результатам при одном порядке действий.

Второе -- имеет всегда одно и то же завершение при одних и тех же входных данных (чистая функция).

Введение чёткого онтологического различия между двумя формами действия в языке prolet позволяет добиться следующих диалектических эффектов:

  • процессформа практики, зависящая от материи, времени и условий, может давать разные результаты при одинаковых шагах.
  • функцияформа чистого преобразования, детерминированная, всегда дающая одинаковый результат при одинаковых входах.

Это — не просто синтаксическое различие.

Это — отражение диалектики необходимости и случайности, единства и борьбы противоположностей: материи и формы, практики и логики, времени и закона.

✅ Принятое положение

В коде на языке prolet различаются два типа тэгов-действий :

  • (прц ...) — материальный процесс, зависящий от внешних условий, времени, состояния системы.
  • (фн ...) — чистое преобразование, не имеющее побочных эффектов, детерминированное, отвечающее критерию математической функции.

🔁 Диалектическое различие

КАТЕГОРИЯ ПРОЦЕСС ФУНКЦИЯ
Природа Материальный, исторически обусловленный Формальный, логически детерминированный
Зависимость от времени Да: каждый запуск — новый момент Нет: время не влияет
Побочные эффекты Допустимы (запись, отправка, изменение) Запрещены
Детерминированность Нет: может зависеть от шлюзов, состояния Да: одинаковые входы → одинаковые выходы
Онтологический статус Практика, действие, изменение Закон преобразования
Аналог в реальности Работа завода, регистрация пользователя Формула: f(x) = x²

💬 Процесс — это диалектика материи в движении. Функция — это закон, выделенный из практики.

✅ Форма объявления: процесс

(прц ОтправитьУведомление
    (пользователь @фикс Пользователь сообщение @фикс Сообщение)
                                            -> @фикс Результат КодОшибки

    (если (ПроверитьАктивность пользователь)
        тогда ((ПодготовитьСообщение сообщение)
                (ОтправитьЧерезПочту (ПолучитьПочту пользователь) сообщение)
                (ЗаписатьЖурнал "Уведомление отправлено"))
    )
)

Семантика процесса

Может возвращать разные результаты при одинаковых пользователь и сообщение:

  • почта упала,
  • email изменился,
  • пользователь деактивирован.

Имеет побочные эффекты:

  • запись в журнал,
  • отправка.

Зависит от времени и состояния системы.

❗ Это — не функция, а практика социального взаимодействия.

✅ Форма объявления: функция

(фн ПолучитьКвадрат (x @фикс Число) -> @фикс Число)
    (Умножить x x))

(фн ФорматироватьИмя (имя @фикс Имя фамилия @фикс Фамилия) -> @фикс Текст)
    (Соединить фамилия " " имя))

Семантика функции

  • При одинаковых x всегда вернёт одинаковый результат.
  • Нет побочных эффектов: не пишет, не отправляет, не изменяет.
  • Не зависит от времени, состояния, внешних условий.
  • Может быть вычислена в любой момент, даже заранее.

✅ Это — чистое преобразование, заимствованное из логического дискурса, но вписанное в практику как инструмент.

📜 Онтологические правила prolet

ПРАВИЛО ФОРМУЛИРОВКА
1 процесс -- действие, зависящее от материи и времени, может давать разные результаты
2 функция -- чистое преобразование, всегда одинаковый результат при одинаковых входах
3 функция не может вызывать процесс (иначе — не чистая)
4 процесс может использовать функцию (как инструмент преобразования)
5 функция не имеет побочных эффектов
6 процесс может иметь побочные эффекты (запись, отправка, изменение)
7 функция может быть встроена в процесс, но не наоборот

🔄 Пример: процесс, использующий функцию

(прц ОбновитьПрофиль (пользователь @мут Пользователь
                    имя_новое @фикс Имя
                    фамилия_новая @фикс Фамилия) -> Результат
    (если (ПроверитьПрава пользователь)
    тогда (
        ((ФорматироватьИмя имя_новое фамилия_новая) -> полноеИмя @фикс)
        (СохранитьБаза пользователь полноеИмя))
    )
)

Здесь:

  • ФорматироватьИмя — функция, чистая, детерминированная.
  • ОбновитьПрофиль — процесс, зависит от прав, состояния базы, времени.

💡 Философское обоснование

Нотация следует духу диалектического материализма:

  • Материя первична — процесс отражает её движение.
  • Форма вторична — функция — идеализация, выделенная из практики.
  • Но форма может служить практике — функция используется внутри процесса.
  • Но не наоборот — практика не может быть сведена к форме.

💬 «Функция — как формула в голове инженера

  • Процесс — как работа завода.
  • Формула помогает управлять заводом,
  • но завод не сводится к формуле.

🏁 Заключение

В этой части установлено ключевое онтологическое различие:

  • функция — закон преобразования, выделенный из практики, но не зависящий от неё.
  • процесс — реализация практики, зависящая от материи, времени, случайностей.

prolet больше не смешивает форму и содержание.

Он разделяет их — чтобы соединить на высшем уровне.