Грамматика ложбана/18.5

From Lojban
Jump to navigation Jump to search

Оглавление

Простые инфиксные выражения и уравнения

В этом разделе обсуждаются следующие cmavo:
cmavo selma'o значение
du GOhA равно
su'i VUhU плюс
vu'u VUhU минус
pi'i VUhU умножить
te'a VUhU возведение в степень
ny BY буква «n»
vei VEI левая скобка
ve'o VEhO правая скобка

Давайте начнем с самого начала: один плюс один равно два. На Ложбане это предложение переводится как:

18.22)  li pa su'i pa du li re
        Число один плюс один равно числу два
        1 + 1 = 2

Пример 18.22, предложение mekso, – это обычное bridi Ложбана, использующее особенности mekso. du – это предикат, означающий «x1 математически равен x2». Это cmavo для краткости, но он имеет те же грамматические функции, как и любая brivla. Вне математического контекста du означает «x1 идентичен x2» или «x1 – тот же объект, что и x2».

cmavo li – это артикль числа. Он необходим, когда в предложении говорится о числах как о числах, в отличие от использования чисел для количественной оценки. Например:

18.23)  le ci prenu
        три персоны

не требует артикля li, поскольку ci используется для указания числа prenu. Однако в предложении

18.24)  levi sfani cu grake li ci
        Эта муха имеет-массу-в-грамах число три
        Масса этой мухи – 3 грамма.

требует li, потому что ci используется как sumti. Обратите внимание, что именно так в Ложбане обозначаются измерения: во всех сказуемых, обозначающих единицы длины, массы, температуры и так далее, на первом месте стоит измеряемый объект, а на втором – число. Если в примере 18.23 использовать li вместо le, то получится

18.25)  li ci prenu
        Число 3 – персона

что грамматически правильно, но нелогично: числа не являются личностями.

cmavo su'i относится к selma'o VUhU, которая состоит из математических операторов и означает «сложение». Как уже упоминалось, он отличается от ma'u, который означает положительный знак, обозначающий положительное число:

18.26)  li ma'u pa su'i ni'u pa du li no
        Число положительный-знак один плюс знак-отрицания один равно число ноль
        +1 + -1 = 0

Конечно, можно иметь сложные mekso по обе стороны du:

18.27)  li mu su'i pa du li ci su'i ci
        Число пять плюс один равно число три плюс три
        5 + 1 = 3 + 3

Почему мы не говорим li mu su'i li pa, вместо li mu su'i pa? Ответ заключается в том, что операторы VUhU соединяют операнды mekso (числа, в примере 18.27), а не общие sumti. li используется для превращения всего mekso в sumti, который затем играет роли, применимые к другим sumti: в примере 18.27, заполняя места bridi

По умолчанию математика Ложбана похожа на простую калькуляторную математику: в ней нет понятия «старшинства операторов». Рассмотрим следующий пример, где pi'i означает «раз», оператор умножения:

18.28)  li ci su'i vo pi'i mu du li reci
        Число три поюс четыри умножить-на пять равно число два-три
        3 + 4 × 5 = 23

Верна ли версия примера 18.28 на ложбане? Нет! «3 + 4 × 5» действительно равно 23, потому что по обычным правилам математики умножение имеет приоритет над сложением; то есть сначала выполняется умножение «4 × 5», дающее 20, и только потом сложение «3 + 20». Но операторы VUhU по умолчанию выполняются слева направо, как и другие группировки Ложбана, и поэтому правдивое bridi будет таким:

18.29)  li ci su'i vo pi'i mu du li cimu
       Число три поюс четыри умножить-на пять равно число три-пять
        3 + 4 × 5 = 35

Здесь мы сначала вычисляем 3 + 4, что дает 7, а затем вычисляем 7 × 5, что приводит к результату 35. Несмотря на преимущество простоты, этот результат нарушает цель замысла – соответствие стандартам математики. Что можно сделать?

Есть три решения, и все они, вероятно, будут использованы в той или иной степени. Первое решение – игнорировать проблему. Люди будут говорить li ci su'i vo pi'i mu и подразумевать под этим 23, потому что представление о том, что умножение имеет приоритет над сложением, слишком глубоко укоренилось, чтобы его можно было искоренить с помощью синтаксического анализа Ложбана, который полностью игнорирует семантику. Эта договоренность, по сути, позволяет семантике доминировать над синтаксисом в этой единственной области.

(Почему бы не встроить приоритеты в грамматику, как это делается в языках программирования? В основном потому, что существует слишком много операторов, известных и неизвестных, с уровнями приоритета, которые меняются в зависимости от использования. Язык программирования 'C' имеет 13 уровней приоритета, и его список операторов даже не расширяется. Для Ложбана такой подход просто непрактичен. Кроме того, жёстко закреплённый приоритет не может быть отменён в математических системах, таких как электронные таблицы, где действуют другие правила).

Второе решение – использовать явные средства для указания приоритета операторов. Этот подход является полностью универсальным, но громоздким, и будет объяснен в разделе 18.20.

Третье решение простое, но не очень общее. Когда оператор получает префикс cmavo bi'e (от selma'o BIhE), он автоматически становится с большим приоритетом, чем другие операторы без такого префикса. Таким образом,

18.30)  li ci su'i vo bi'e pi'i mu du li reci
        Число три плюс четыре умножить-на пять равно число двадцать-три
        3 + 4 × 5 = 23

является правдивым bridi Ложбана. Если несколько операторов имеют префикс bi'e, группировка ведется справа; несколько префиксов bi'e на одном операторе не допускаются.

Кроме того, конечно, в Ложбане есть математические скобки vei и ve'o , которые можно использовать так же, как и их письменные эквиваленты "(" и ")", чтобы группировать выражения любым удобным способом:

18.31)  li vei ny. su'i pa ve'o pi'i vei ny. su'i pa [ve'o]
          du li ny. [bi'e] te'a re su'i re bi'e pi'i ny. su'i pa
        Число ( n плюс один ) умножить-на ( n плюс один )
          равно числу n в-степени два плюс два умножить-на n плюс один
         (n+1)(n+1) = n2 + 2n + 1

В примере 18.31 есть несколько новых употреблений: te'a означает «вознесение в степень», и мы также видим использование слова lerfu ny. обозначающего букву «n». В mekso буквы обозначают то же, что и в обычной математике: переменные. В соответствии с правилами компьютерных наук синтаксический анализатор будет воспринимать строку слов lerfu (называемую «строкой lerfu») как эквивалент одного слова lerfu; «abc» – это одна переменная, а не эквивалент «a × b × c». (Конечно, в соответствии с локальными правилами, значение переменной «abc» с множественным lerfu-именем может быть равно значениям перемноженных переменных «a», «b» и «c»).

Явный оператор pi'i требуется в словесной форме Ложбана, в то время как умножение неявно в символьной форме. Обратите внимание, что ve'o (правая скобка) – это опускаемый терминатор: первое его использование в примере 18.31 обязательно, но второе (отмеченное квадратными скобками) может быть опущено. Кроме того, первый bi'e (также отмеченный квадратными скобками) не является необходимым для получения правильной группировки, но он включен сюда для симметрии с другим.

Далее