Приведенные выше команды работают и в том случае, когда а и Ь являются символьными строками. Например, команда a eq b выдает true тогда и только тогда, когда строка а совпадает со строкой Ь. С другой стороны, команда a gt b равна true тогда и только тогда, когда строка а «лексически больше» строки Ь. Лексическое расположение строк иногда называют «лексикографическим порядком» («dictionary order»). Предположим, что строки а и b совпадают вплоть до я-го символа. В этом случае a b gt равно true тогда и только тогда, когда следующий символ строки а имеет большее ASCII-значение, чем следующий символ строки b (или если в строке b следующий символ отсутствует, а в строке а он есть). Например, каждое из следующих выражений равно true:
(rug)(rag) gt % V is "bigger" than 'a' X 'u' «больше», чем 'a'
(lionize) (lion) gt % the longer string is "bigger" % более длинная строка «больше»
(bob)(Bob) gt % lowercase letters are "bigger" than uppercase letters % строчные буквы «больше», чем прописные Г5. Команды решений и итераций Х027
Г5.1. Команды, принимающие логические величины в качестве аргументов Логические величины можно комбинировать, чтобы получить другие логические величины. Если Ы и Ь2 - логические величины (true или false), то, по-прежнему используя слово «iff» в смысле «тогда и только тогда», получим: Ы Ь2 and выдает true iff Ы и Ь2 обе равны true: Ы Ь2 or выдает true iff Ы или Ь2 (или обе) равны true: Ы Ь2 хог выдает true iff Ы или Ь2 (но не обе) равны true: Ы not выдает true iff Ы равна false.
Кроме того, сами величины true и false можно проталкивать в стек с помощью команд:
true проталкивает true в стек: false проталкивает false в стек.
Практическое упражнение Г12. Что помещают в стек следующие операторы: true или false?
34 12 gt 5 7 eq or
23 2 add 5 mul б It
56 67 exch ge 12 14 2 sub ge xor
Г5.2. Принятие решений Логические величины используются двумя командами, 1 f и i fel se, предназначенными для управления последовательностью операций, выполняемых в сценарии.