# pro.02_40 Связывание результатов и имени как диалектическое отражение времени

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

`(%контекст)(уст %переменная)`

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Форма:

```prolet
(%выражение)(уст %имя)
```

или

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

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

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

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

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

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

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

Результат ещё не именован, но уже сущее.

#### `уст` — стрела времени

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

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

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

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

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

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

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

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

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

> 💡 Имя — *не метка* памяти, а обозначение *существующего сущего*.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

> 💡 «Как руда не становится сталью сама по себе, а только в ходе движения производственных процессов, через становление формы полезного ресурса `руда`, так и значение не становится сущим без фиксации».

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

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

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

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

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

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

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

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

Описанная семантика **вводит в язык диалектику бытия и становления**:

> **Каждое связывание — это момент в истории системы,**
> **и эта история не может быть стёрта, она может только изменить форму бытия.**

Это — язык не для «вычисления», а для **практического преобразования мира**.
Именно такой язык нужен для построения **надёжных, осознанных, этичных систем**.
