Грамматика ложбана/18.14
Пересмотр инфиксных операторов
cmavo | selma'o | значение |
---|---|---|
tu'o | PA | нулевой операнд |
ge'a | VUhU | нулевой оператор |
gei | VUhU | экспоненциальная запись |
Представленные до сих пор инфиксные операторы всегда имели ровно два операнда, а для большего или меньшего количества операндов требовалась префиксная запись. Однако можно использовать оператор в инфиксном стиле, даже если у него больше или меньше двух операндов, с помощью пары трюков: нулевого операнда tu'o и нулевого оператора ge'a. Первый подходит, когда операндов слишком мало, второй – когда их слишком много. Например, предположим, что мы хотим выразить числовой оператор отрицания va'a в инфиксной форме. Мы бы использовали:
18.103) li tu'o va'a ny. du li no vu'u ny. Число (нуль) инверсия-знака n равно числу ноль минус n -n = 0 - n
tu'o выполняет грамматическое требование о наличии левого операнда для использования va'a в инфиксной форме, хотя семантически он не нужен или нежелателен.
Для того чтобы найти подходящий пример ge'a, необходимо показать тернарный оператор, а тернарные операторы встречаются нечасто. Оператор gei, однако, имеет как двухместное, так и трёхместное применение. Как двухместный оператор, он обеспечивает краткое представление научной (также называемой «экспоненциальной») записи. Первым операндом gei является экспонента, а вторым – мантисса или дробь:
18.104) li cinonoki'oki'o du li bi gei ci Число три-ноль-ноль-разделитель-разделитель равно числу восемь научная-запись три 300 000 000 = 3 × 108
Почему аргументы gei расположены в обратном порядке по сравнению с обычной символьной нотацией? Чтобы можно было заранее использовать gei для простого задания большого (или малого) неточного числа:
18.105) gei reno (научная-нотация) два-ноль 1020
Заметим, однако, что, хотя 10 – самое распространенное основание экспоненты, оно не является единственно возможным. Поэтому третьим операндом gei является основание, причем по умолчанию используется значение 10. Большинство компьютеров хранят так называемые числа с плавающей точкой, используя 2 в качестве основания экспоненты. (Это не связано с тем, что компьютеры также представляют все целые числа по основанию 2; в компьютерах серии IBM 360 для плавающей точки использовалось основание экспоненты 16, хотя каждая компонента числа выражалась по основанию 2). Вот компьютерное число с плавающей точкой со значением 40:
18.106) papano bi'eju'u re gei pipanopano bi'eju'u re ge'a re (один-один-ноль основание два) научная-запись (запятая-один-ноль-один-ноль основание два) с-основанием два ,10102 × 21102