|
|
@@ -0,0 +1,150 @@
|
|
|
+# Присвоение результатов как диалектическое отражение времени
|
|
|
+
|
|
|
+В языке программирования **prolet**, присвоение основано на стреле времени и онтологической чёткости: присвоение — не операция в стиле `x = f()`, а процесс перехода от действия к сущему,
|
|
|
+зафиксированный как направленное преобразование во времени:
|
|
|
+
|
|
|
+`(выражение) -> фикс переменная`
|
|
|
+
|
|
|
+Это — не синтаксический курьёз.
|
|
|
+
|
|
|
+Это — онтологическая фиксация становления:
|
|
|
+
|
|
|
+- сначала — процесс,
|
|
|
+- потом — сущее.
|
|
|
+
|
|
|
+## ✅ Канонический пример
|
|
|
+
|
|
|
+```prolet
|
|
|
+(// Фиксированный результат, мутабельность определяется в сигнатуре вызова,
|
|
|
+по необходимости можно усилить требования, но не ослабить по Бертрану Мейеру)
|
|
|
+((ПолучитьДанные) -> данные)
|
|
|
+((ГруппироватьПо данные ключ) -> группа)
|
|
|
+((СуммироватьПо данные группа) -> результат)
|
|
|
+```
|
|
|
+
|
|
|
+Разберём досконально.
|
|
|
+
|
|
|
+### 🧩 Семантическая структура присвоения
|
|
|
+
|
|
|
+Форма:
|
|
|
+
|
|
|
+```prolet
|
|
|
+((выражение) -> имя)
|
|
|
+```
|
|
|
+
|
|
|
+или
|
|
|
+
|
|
|
+```prolet
|
|
|
+(// Если возвращает @мут -- можно усилить требования, но не ослабить)
|
|
|
+((Выражение) -> @фикс имя)
|
|
|
+```
|
|
|
+
|
|
|
+#### Внешние скобки — единое выражение присвоения
|
|
|
+
|
|
|
+```prolet
|
|
|
+( ... )
|
|
|
+```
|
|
|
+
|
|
|
+✅ Всё — одно выражение, отражающее процесс становления.
|
|
|
+
|
|
|
+#### Внутреннее выражение — действие, порождающее сущее
|
|
|
+
|
|
|
+```prolet
|
|
|
+(ПолучитьДанные)
|
|
|
+```
|
|
|
+
|
|
|
+Это — вызов, процесс, действие во времени.
|
|
|
+
|
|
|
+Он ещё не сущее, но источник сущего.
|
|
|
+
|
|
|
+#### -> — стрелка времени
|
|
|
+
|
|
|
+Указывает направление:
|
|
|
+
|
|
|
+- от процесса к результату,
|
|
|
+- от возможного к сущему.
|
|
|
+
|
|
|
+✅ Допустима, потому что:
|
|
|
+
|
|
|
+- однозначна,
|
|
|
+- отражает направленность времени,
|
|
|
+- не перегружена смыслами.
|
|
|
+
|
|
|
+### фикс / мут — онтологический статус переменной
|
|
|
+
|
|
|
+- `@фикс Переменная` — сущее, неизменяемое после присвоения; Аналог "закреплённого факта"
|
|
|
+- `@мут Переменная` — сущее, допускающее последующие изменения; Аналог "рабочей величины"
|
|
|
+
|
|
|
+Это — _не тип_, а _статус существования во времени_.
|
|
|
+
|
|
|
+## имя — идентификатор сущего
|
|
|
+
|
|
|
+Пример: `данные`, `группа`, `результат`
|
|
|
+
|
|
|
+Имя — _не метка_ памяти, а обозначение _зафиксированного сущего_.
|
|
|
+
|
|
|
+## ✅ Полная семантика
|
|
|
+
|
|
|
+```prolet
|
|
|
+((ПолучитьДанные) -> @фикс данные)
|
|
|
+(// Результат процесса ПолучитьДанные становится сущим,
|
|
|
+именуется данные, и далее считается завершённым, неизменяемым фактом)
|
|
|
+
|
|
|
+((СуммироватьПо данные группа) -> результат)
|
|
|
+(// Результат процесса СуммироватьПо становится сущим,
|
|
|
+именуется результат, но может быть изменён в будущем)
|
|
|
+```
|
|
|
+
|
|
|
+## 📜 Онтологические правила присвоения в **prolet**
|
|
|
+
|
|
|
+- Присвоение — выражение в парных скобках
|
|
|
+- Форма: `((выражение) -> @фикс имя)` или `((выражение) -> имя)`
|
|
|
+- `@фикс` — создаёт неизменяемое сущее
|
|
|
+- `@мут` - — создаёт (повторяет из сигнатуры вызова) изменяемое сущее
|
|
|
+- `->` — стрелка времени, отражает переход от действия к сущему
|
|
|
+- Нет форм `:=`, `=`, `<-`, — только `->` как отражение реального потока времени в одну сторону
|
|
|
+- Нельзя использовать имя до его присвоения
|
|
|
+- `@фикс` нельзя переопределять;
|
|
|
+- `@мут` — можно, если сигнатура вызова определяет мутабельность результата
|
|
|
+
|
|
|
+## 🔄 Пример: полный процесс
|
|
|
+
|
|
|
+```prolet
|
|
|
+(прц ОбработатьДанные () -> @фикс Результат.Ок
|
|
|
+ ((ПолучитьДанные) -> @фикс данные)
|
|
|
+ (если (ПроверитьПусто данные)
|
|
|
+ тогда (вернуть Результат.Ошибка "нет_данных"))
|
|
|
+
|
|
|
+ ((ГруппироватьПо данные ключ) -> @фикс группа)
|
|
|
+ ((СуммироватьПо группа) -> результат)
|
|
|
+
|
|
|
+ ((ДобавитьМетаданные результат) -> результат)
|
|
|
+
|
|
|
+ (вернуть Результат.Ок результат)
|
|
|
+)
|
|
|
+```
|
|
|
+
|
|
|
+- ✅ Каждое присвоение — этап фиксации сущего.
|
|
|
+- ✅ `@фикс` — для завершённых фактов.
|
|
|
+- ✅ `@мут` — для рабочих величин, допускающих развитие.
|
|
|
+
|
|
|
+## 💡 Философское обоснование
|
|
|
+
|
|
|
+Язык **prolet** следует диалектическому материализму:
|
|
|
+
|
|
|
+- Сущее не дано сразу — оно становится через процесс.
|
|
|
+- Присвоение — не копирование, а онтологическое рождение.
|
|
|
+- Стрелка `->` — не оператор, а символ времени, отражающий:
|
|
|
+ - «сначала было действие,
|
|
|
+ - потом — результат,
|
|
|
+ - потом — имя».
|
|
|
+
|
|
|
+💬 «Как пролетариат не становится классом сам по себе, а только в ходе развития классовых противоречий, через осознание себя общественной силой, так и значение не становится сущим без фиксации».
|
|
|
+
|
|
|
+## 🏁 Заключение
|
|
|
+
|
|
|
+Язык установил онтологически чистую форму присвоения:
|
|
|
+
|
|
|
+`((действие) -> @фикс имя)` — это не присваивание, это — акт фиксации сущего во времени.
|
|
|
+
|
|
|
+Нет места для `x = f()`. Есть только `((f) -> фикс x )` — как протокол становления.
|