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

From Lojban
Jump to navigation Jump to search

Оглавление

Логические и не логические связки в mekso

В этом разделе обсуждаются следующие cmavo:
cmavo selma'o значение
.abu BY буква "a"
by BY буква "b"
cy BY буква "c"
fe'a VUhU корень n-той степени, по умолчанию квадратный (√)
lo'o LOhO терминатор для LI

Как и подобает логическому языку, в Lojban предусмотрены логические связки как в операторах, так и в операндах. Полная информация о логических и нелогических связках приводится в главе 14. Операнды соединяются в последующую мысль с selma'o A и в предваряющую мысль с selma'o GA, как и sumti. Операторы связаны в последующую мысль с selma'o JA, а в предваряющую мысль – с selma'o GUhA, как и компоненты tanru. Этот параллелизм не случаен.

Кроме того, конструкции A+BO и A+KE разрешены для группировки логически связанных операндов, а ke…ke'e – для группировки логически связанных операторов, хотя аналогов tanru среди операторов нет.

Несмотря на большое количество правил, необходимых для поддержки этой функции, она имеет относительно небольшое значение в системе mekso. Пример 18.114 демонстрирует логическую связь между операндами:

18.114) vei ci .a vo ve'o prenu cu klama le zarci
         ( три или четыре ) человека идут в-магазин

Пример 18.115 эквивалентен по смыслу, но использует связку предваряющей мысли:

18.115) vei ga ci gi vo ve'o prenu cu klama le zarci
        ( Или 3 или 4 ) человека идут в-магазин

Обратите внимание, что здесь mekso используются как количественные показатели. В ложбане требуется, чтобы любое mekso, кроме простого числа, было заключено в круглые скобки при использовании в качестве количественного показателя. Это правило позволяет избежать двусмысленности, которой нет при использовании li.

Кстати, у li есть опускаемый терминатор, lo'o, который необходим, когда за li sumti следует логический соединитель, который, казалось бы, может находиться внутри mekso. Например:

18.116) li re su'i re du li vo lo'o .onai lo nalseldjuno namcu
        Число два плюс два равно числу четыри или-не неизвестному числу

Если опустить lo'o, синтаксический анализатор предположит, что за .onai следует другой операнд, и отвергнет lo как недопустимый операнд.

Простые примеры логической связи между операторами трудно найти. Надуманный пример:

18.117) li re su'i je pi'i re du li vo
        два плюс и умножить-на два равно четыри
        2+2=4 и 2·2=4

Пример 17.3 имеет вид предваряющей мысли:

18.118) li re gu'e su'i gi pi'i re du li vo
        Два и плюс и умножить-на два равно четыри
        Оба, и 2+2=4 и 2·2=4

Вот классический пример логической связи операндов:

18.119) go li .abu bi'epi'i vei xy. te'a re ve'o su'i
        Если число "a" умножить ( "x" в-степени 2 ) плюс
          by. bi'epi'i xy. su'i cy. du li no
          "b" умножить "x" плюс "c" равно числу ноль
          gi li xy. du li vei va'a by. ku'e
          тогда-и-только-тогда число "x" равно числу [ отрицание( b )
          su'i ja vu'u fe'a
          плюс или минус корня
          vei by. bi'ete'a re vu'u vo bi'epi'i .abu bi'epi'i cy. ve'o [ku'e] ve'o
          ( "b" в-степени 2 минус четыре умноженое-на "a" умножиное-на "c"  ) ]
          fe'i re bi'epi'i .abu
          поделенное-на 2 умноженное-на "a"
          

Обратите внимание на смешение стилей в примере 18.119: отрицание b и квадратный корень представлены предваряющей мыслю, а большинство операторов старшинства – префиксом bi'e, но для правильной группировки числителя пришлось добавить явные круглые скобки. Кроме того, скобки квадратного корня здесь нельзя убрать в пользу простых скобок fe'a и ku'e, поскольку в операнде присутствуют инфиксные операторы. Чтобы добиться идеального разбора примера 18.119 с помощью текущего синтаксического анализатора, потребовалось несколько попыток: в более спокойном стиле можно было бы обойтись без bi'e cmavo и просто использовать стандартные правила старшинства.

Нелогическое соединение с помощью JOI и BIhI также разрешено между операндами и между операторами. Одна из возможностей использования этой конструкции – соединение операндов с помощью bi'o для создания интервалов:

18.120) li no ga'o bi'i ke'i pa
        Ноль (включая) от-до (исключая) один
        [0,1)
        числа от нуля до единицы, включая ноль, но не включая единицу

Интервалы, определяемые средней точкой и диапазоном, а не точкой начала и конца, можно выразить через mi'i:

18.121) li pimu ga'o mi'i ke'i pimu
        Число 0,5 (включая) в с-центром-в-диапазоне (исключая) 0,5

который выражает тот же интервал, что и пример 18.120. Обратите внимание, что ga'o и ke'i по-прежнему относятся к конечным точкам, хотя теперь они подразумеваются, а не выражаются. Другой способ выразить то же самое:

18.122) li pimu su'i ni'upimu ga'o bi'o ke'i ma'upimu
        Число 0,5 плюс [-0,5 (включительно) от-до (исключительно) +0,5]

Здесь мы имеем сумму числа и интервала, которая порождает другой интервал, с центром на числе. Как показывает пример 18.122, нелогическое (или логическое) соединение операндов имеет больший приоритет, чем любой оператор mekso.

Также можно объединить два операнда с помощью ce'o, соединителя последовательности selma'o JOI, чтобы получить составной индекс:

18.123) xy. boi xi vei by. ce'o dy. [ve'o]
        “x” под ( “b” последовательность “d” )
        x b,d

Далее