Пользовательские единицы и константы
Определяйте собственные единицы и константы уровня приложения: грамматика, зависимости, лимиты и правила отклонения.
Две настройки позволяют расширить то, что может сказать лист: Settings → Units определяет новые единицы из существующих (или как независимые новые атомы), а Settings → Constants задаёт до 100 именованных значений, доступных каждому листу.
Эта страница описывает обе системы: правила именования, выражения определений, разрешение
зависимостей и циклы, область действия на уровне приложения (ни то ни другое не попадает
в экспорт .nlx) и то, какие именно значения каждая система принимает или отклоняет.
Пользовательские единицы (Settings → Units)
Именование
- 1–6 ASCII-слов, не более 40 символов; первое слово начинается с буквы.
- Имя должно быть уникальным: коллизия с каталогом или другой пользовательской единицей отклоняется.
- Форма множественного числа имени принимается автоматически, как у атомов каталога.
Определения
Принимаются два вида определений:
<number> <existing unit expression>— например2.54 cm— определяет новую единицу через существующие;- литерал
new unit, объявляющий новый независимый атом.
Зависимости и лимиты
- Зависимости разрешаются в порядке объявления и вне его — порядок не важен.
- Цикл — ошибка.
- Глобальный лимит — 100 пользовательских единиц.
- Пользовательские единицы действуют на уровне приложения (настройки приложения) и
не сохраняются в листе
.nlx. - В листе пользовательские единицы ведут себя как единицы каталога: количества, конвертация и арифметика работают так, как описано в единицах и количествах.
Константы (Settings → Constants)
Именование
- 1–6 ASCII-слов, не более 40 символов; первое слово начинается с буквы.
- Существуют зарезервированные категории: системные имена и категории нельзя переопределить.
Выражения
- Выражение хранится дословно как исходный текст, не более 256 символов.
- Результат должен быть конечным безразмерным скалярным числом, процентом или денежным количеством с одним фиатным кодом.
- Константа может ссылаться на другие константы.
Зависимости и лимиты
- Зависимости не зависят от порядка объявления: значения пересчитываются при каждом изменении настроек, поэтому правка мгновенно обновляет все листы.
- Циклическая зависимость — ошибка.
- Лимит — 100 констант.
- Константы действуют на уровне приложения и не сохраняются в
.nlx. - Внутри листа константы неизменяемы — их можно править только в настройках.
Примеры
Если в Settings → Constants объявлены PI, Tax и Rent:
PI × 2 → 6.283185307179586
Tax × 100 → 8 (Tax = 8% = 0.08; in multiplication the
percent scalar returns as an ordinary number)
Rent × 12 → 14400 USD (Rent = 1200 USD)
Отклоняемые значения
Строка константы, разрешающаяся в любое из этого, остаётся неактивной:
- значение с единицами (
9.81 m/s²), - логические значения,
- даты,
- присваивания,
- маркеры токенов ответов,
- смешанные валюты,
- неизвестные имена,
- циклы.
Имена листа и константы
Именованные значения листа — отдельный механизм от констант в настройках (см. язык листа). Целочисленное именованное целое сохраняет точную форму:
x = 0x1F
x & 1 → 1
x as hex → 0x1F
и x не изменяется строкой x + 1.
Связанные разделы
- Единицы и количества — как работают единицы каталога и выражения.
- Настройки и внешний вид — практическое руководство по категориям настроек.