Язык, отражающий диалектически реальный мир должен явно в общей форме различать две типа контекстов: процесс и функция.
Первое -- может приводить к разным результатам при одном порядке действий.
Второе -- имеет всегда одно и то же завершение при одних и тех же входных данных (чистая функция).
Введение чёткого онтологического различия между двумя формами действия в языке prolet позволяет добиться следующих диалектических эффектов:
Все кварки являются функциями в том смысле, что меняя собственное состояние кварк всегда поддерживает собственные инварианты. В этом смысле цифровая материя prolet является чистой функцией как закон.
С другой стороны, все кварки обладают состоянием. Таким образом в кварке объединяются закон и материя, что снимает противоречие закон-материя.
Закон не парит над материей -- он её плоть.
Материя не сводится только лишь к хаосу, но даже хаос обнаруживает законы.
Закон -- устойчивая форма движения материи.
Это — не просто синтаксическое различие.
💡 Это — отражение диалектики необходимости и случайности, единства и борьбы противоположностей: материи и формы, практики и логики, времени и закона.
В коде на языке prolet различаются два типа контекстов-действий :
(прц ...) — материальный процесс, зависящий от внешних условий, времени, состояния системы.(фн ...) — чистое преобразование, не имеющее побочных эффектов, детерминированное, отвечающее критерию математической функции.| КАТЕГОРИЯ | ПРОЦЕСС | ФУНКЦИЯ |
|---|---|---|
| Природа | Материальный, исторически обусловленный | Формальный, логически детерминированный |
| Зависимость от времени | Да: каждый запуск — новый момент | Нет: время не влияет |
| Побочные эффекты | Допустимы (запись, отправка, изменение) | Запрещены |
| Детерминированность | Нет: может зависеть от входов, состояния | Да: одинаковые входы → одинаковые выходы |
| Онтологический статус | Практика, действие, изменение | Закон преобразования |
| Аналог в реальности | Работа завода, регистрация пользователя | Формула: f(x) = x² |
💡 Процесс — это диалектика материи в движении.
💡 Функция — это закон, выделенный из практики.
(прц ОтправитьУведомление
(Пользователь пользователь @изм
Сообщение сообщение ) Результат КодОшибки @изм(
(если (ПроверитьАктивность пользователь)
тогда ((ПодготовитьСообщение сообщение)
(ПолучитьПочту пользователь)
(ОтправитьЧерезПочту @рез)
(ЗаписатьЖурнал "Уведомление отправлено"))
))
)
Может возвращать разные результаты при одинаковых пользователь и сообщение:
Имеет побочные эффекты:
Зависит от времени и состояния системы. Параметры по умолчанию фиксированы, чтобы явно указать факт изменяемости, нужно передавать атрибут @изм .
💡 Процесс — *не функция*, а *практика социального взаимодействия*.
(фн ПолучитьКвадрат (Число x): Число(
(Умножить x x))
)
(фн ФорматироватьИмя
(Имя имя Фамилия фамилия) Текст(
(Соединить фамилия " " имя))
)
x всегда вернёт одинаковый результат;Поскольку все параметры неизменяемы — нет смысла указывать @изм, в любом случае все параметры воспринимаются как фиксированные.
💡 Функция — чистое преобразование, заимствованное из логического дискурса, но вписанное в практику как инструмент.
prolet| ПРАВИЛО | ФОРМУЛИРОВКА |
|---|---|
| 1 | процесс -- действие, зависящее от материи и времени, может давать разные результаты |
| 2 | функция -- чистое преобразование, всегда одинаковый результат при одинаковых входах |
| 3 | функция не может вызывать процесс (иначе — не чистая) |
| 4 | процесс может использовать функцию (как инструмент преобразования) |
| 5 | функция не имеет побочных эффектов |
| 6 | процесс может иметь побочные эффекты (запись, отправка, изменение) |
| 7 | функция может быть встроена в процесс, но не наоборот |
(прц ОбновитьПрофиль (
Пользователь пользователь @изм
Имя имя_новое
Фамилия фамилия_новая): Результат(
(если (ПроверитьПрава пользователь)
тогда (
(ФорматироватьИмя имя_новое фамилия_новая)
(уст полное_имя)
(Пользователь.УстИмя (пользователь полное_имя)
(СохранитьБаза (пользователь))
))
)
Здесь:
Нотация следует духу диалектического материализма:
В этой части установлено ключевое онтологическое различие:
💡
proletбольше не смешивает форму и содержание. Он разделяет их — чтобы соединить на высшем уровне.