Numlex Документация
Справочник
Сообщить о проблеме

Пользовательские единицы и константы

Определяйте собственные единицы и константы уровня приложения: грамматика, зависимости, лимиты и правила отклонения.

Две настройки позволяют расширить то, что может сказать лист: 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.

Связанные разделы

Нашли ошибку в документации? Сообщите о ней на GitHub