|
|
@@ -44,7 +44,7 @@
|
|
|
```prolet
|
|
|
(// Если не указан атрибут изменяемости -- по умолчанию @фикс)
|
|
|
(фн Cложить (Час a Час b)(
|
|
|
- (СложитьЧас a b))
|
|
|
+ (Час Сложить a b))
|
|
|
)
|
|
|
|
|
|
(атом Пользователь
|
|
|
@@ -77,18 +77,20 @@
|
|
|
(ОбновитьИнтерфейс))
|
|
|
)
|
|
|
|
|
|
-(макро SQL "SELECT * FROM пользователи WHERE возраст > ?" возраст }
|
|
|
+(макро SQL "SELECT * FROM пользователи WHERE возраст > ?" возраст )
|
|
|
```
|
|
|
|
|
|
Как это работает: `параллельно` — не ключевое слово, а расширение, определённое в пользовательской библиотеке, на том же уровне.
|
|
|
|
|
|
Это — народное творчество, как массовое движение, которое не ломает основу, но вносит новое содержание.
|
|
|
|
|
|
+Макросы раскрываются на этапе препоцессинга исходного текста.
|
|
|
+
|
|
|
## Разделение форм: философская и практическая необходимость
|
|
|
|
|
|
### Формы ядра
|
|
|
|
|
|
-- Форма: `(контекст действие аргументы)`
|
|
|
+- Форма: `(%контекст %действие %аргументы)`
|
|
|
- Изменяемость: Запрещена в версии
|
|
|
- Компиляция: На этапе 1
|
|
|
- Авторство: разработчики ядра
|
|
|
@@ -99,7 +101,7 @@
|
|
|
|
|
|
- Форма: `(макро содержание)`
|
|
|
- Изменяемость: Разрешена, по согласованию
|
|
|
-- Компиляция: На этапе 2 (после ядра)
|
|
|
+- Компиляция: На этапе 2 (после ядра, но до разбора исходного текста)
|
|
|
- Авторство: Сообщество, отдельные разработчики
|
|
|
- Ответственность: На авторе расширения
|
|
|
- Жизненный цикл: Краткий (пробный, экспериментальный))
|