# Присвоение результатов как диалектическое отражение времени

В языке программирования **prolet**, присвоение основано на стреле времени и онтологической чёткости: присвоение — не операция в стиле `x = f()`, а процесс перехода от действия к сущему,
зафиксированный как направленное преобразование во времени:

`(выражение) -> @фикс переменная`

Это — не синтаксический курьёз.

Это — онтологическая фиксация становления:

- сначала — процесс,
- потом — сущее.

Мы живём в мире, где стрела времени всегда направлена в одну сторону. Это означает, что все процессы протекают в одном направлении вдоль оси времени (даже если процесс обратим).

Поэтому и синтаксис языка должен следовать реальности в духе диалектического материализма.

Это — не просто замечание. Это объективное требование, чтобы язык **prolet** не просто описывал сущее, а воспроизводил в своей форме саму природу бытия: материю, движение, развитие, необратимость времени.

## Отражение односторонней направленности времени

- Все процессы — упорядочены по оси времени,
- Все операции — имеют начало, развитие и результат,
- Никакого «возврата в прошлое»,
- Никакого «параллелизма без указания порядка»,
- Никакого «абстрактного одновременного существования».

## 🔁 Диалектика времени и языка

- Время -- Одностороннее, необратимое
- Синтаксис -- линейный, направленный
- Процесс -- Развивается: причина → следствие
- Код -- отражает последовательность
- Обратимость -- Физически возможна, но всё равно идёт вперёд
- Даже "откат" — новый процесс
- Состояние -- Момент среза процесса. Фиксируется как сущее в момент `t`

❗ Даже если система «возвращается» в предыдущее состояние — это не возврат во времени, а новый процесс, имитирующий прошлое.

💬 Форма языка — не статична, а процессуальна. Как материя в движении, так и код в **prolet** — развивается во времени.

## ✅ Канонический пример

Код читается и выполняется слева направо, сверху вниз — как поток практики.

Операции отражают движение от причины к следствию.

Нельзя использовать то, чего ещё не было. Синтаксис запрещает ссылки на будущее.

```prolet
(// Фиксированный результат, мутабельность определяется в сигнатуре вызова,
по необходимости можно усилить требования, но не ослабить по Бертрану Мейеру)
((ПолучитьДанные) -> данные)
((ГруппироватьПо данные ключ) -> группа)
((СуммироватьПо данные группа) -> результат)
```

Нет «выражений, вычисляемых в параллель без указания порядка».
Порядок — не подразумевается, а фиксируется.

Разберём досконально.

### 🧩 Семантическая структура присвоения

Форма:

```prolet
((выражение) -> имя)
```

или

```prolet
(// Если возвращает @мут -- можно усилить требования, но не ослабить)
((Выражение) -> @фикс имя)
```

#### Внешние скобки — единое выражение присвоения

```prolet
( ... )
```

✅ Всё — одно выражение, отражающее процесс становления.

#### Внутреннее выражение — действие, порождающее сущее

```prolet
(ПолучитьДанные)
```

Это — вызов, процесс, действие во времени.

Он ещё не сущее, но источник сущего.

#### -> — стрелка времени

Указывает направление:

- от процесса к результату,
- от возможного к сущему.

✅ Допустима, потому что:

- однозначна,
- отражает направленность времени,
- не перегружена смыслами.

### фикс / мут — онтологический статус переменной

- `@фикс Переменная` — сущее, неизменяемое после присвоения; Аналог "закреплённого факта"
- `@мут Переменная` — сущее, допускающее последующие изменения; Аналог "рабочей величины"

Это — _не тип_, а _статус существования во времени_.

## имя — идентификатор сущего

Пример: `данные`, `группа`, `результат`

Имя — _не метка_ памяти, а обозначение _зафиксированного сущего_.

## ✅ Полная семантика

```prolet
((ПолучитьДанные) -> @фикс данные)
(// Результат процесса 'ПолучитьДанные' становится сущим,
именуется 'данные', и далее считается завершённым, неизменяемым фактом)

((СуммироватьПо данные группа) -> результат)
(// Результат процесса 'СуммироватьПо' становится сущим,
именуется 'результат', но может быть изменён в будущем)
```

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

- Присвоение — выражение в парных скобках
- Форма: `((выражение) -> @фикс имя)` или `((выражение) -> имя)`
- `@фикс` — создаёт неизменяемое сущее
- `@мут` — создаёт (повторяет из сигнатуры вызова) изменяемое сущее
- `->` — стрелка времени, отражает переход от действия к сущему
- Нет форм `:=`, `=`, `<-`. Только `->` как отражение реального потока времени в одну сторону
- Нельзя использовать имя до его присвоения
- `@фикс` нельзя переопределять;
- `@мут` — можно, если сигнатура вызова определяет мутабельность результата

## 🔄 Пример: полный процесс

```prolet
(прц ОбработатьДанные () -> @фикс Результат.Ок
    ((ПолучитьДанные) -> @фикс данные)
    (если (ПроверитьПусто данные)
        тогда (вернуть Результат.Ошибка "нет_данных"))

    ((ГруппироватьПо данные ключ) -> @фикс группа)
    ((СуммироватьПо группа) -> результат)

    ((ДобавитьМетаданные результат) -> результат)

    (вернуть Результат.Ок результат)
)
```

- ✅ Каждое присвоение — этап фиксации сущего.
- ✅ `@фикс` — для завершённых фактов.
- ✅ `@мут` — для рабочих величин, допускающих развитие.

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

Язык **prolet** следует диалектическому материализму:

- Сущее не дано сразу — оно становится через процесс.
- Присвоение — не копирование, а онтологическое рождение.
- Стрелка `->` — не оператор, а символ времени, отражающий:
  - «сначала было действие,
  - потом — результат,
  - потом — имя».

💬 «Как пролетариат не становится классом сам по себе, а только в ходе развития классовых противоречий, через осознание себя общественной силой, так и значение не становится сущим без фиксации».

## 🏁 Заключение

Язык установил онтологически чистую форму присвоения:

**prolet** — не язык программирования, а язык фиксации процесса во времени.

- Он не абстрагируется от времени.
- Он воспроизводит его в синтаксисе.
- Стрела времени — не метафора. Она — структура языка.

`((действие) -> @фикс имя)` — это не присваивание, это — акт фиксации сущего во времени.

Нет места для `x = f()`. Есть только `((f) -> @фикс x )` — как протокол становления.

- Время — объективная форма существования материи.
- Никакого «вневременного» существования типов, функций, значений.
- Каждое сущее — момент процесса.
- Язык — не зеркало, а отражение, в котором форма подчинена содержанию.

💬 «Код в prolet — не набор инструкций, а запись практики, зафиксированной в единстве материи и движения».
