Грамматика ложбана/18.17
Логические и не логические связки в mekso
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