2.1.2 Строки символов и отдельные символы
Каждая строка символов-- это просто рядсимволов. Строка может быть введена с использованием кавычек, например:
"ABCDEFG"
Со строками символов можно делать всё то же самое, что и с любыми другими рядами. Например, та строка, что вы видите выше, полностью эквивалентна ряду:
{65, 66, 67, 68, 69, 70, 71}
который содержит численные коды ASCII, соответствующие символам. Компилятор Euphoria немедленно преобразует "ABCDEFG" в показанный выше ряд чисел. В этом смысле в Euphoria нет "строк", а есть только ряды чисел. Строка в кавычках на самом деле является просто удобной формой записи, чтобы избавить вас от необходимости иметь под рукой таблицу со всеми кодами ASCII и от ввода текста как ряда чисел, разделённых запятыми.
Это означает, что "" эквивалентно {}. Обе записи представляют ряд длины 0, также известный как пустой ряд. Что касается стиля программирования, то естественно писать "", чтобы показать символьный ряд длины 0, и {}, чтобы показать некоторый другой сорт пустого ряда.
Каждый отдельный символявляется атомом. Его следует вводить, используя одинарные кавычки. Имеется отличие отдельного символа (который является атомом) от строки символов, содержащей единственный символ, которая представляет собой ряд с длиной 1. То есть,
'B' -- эквивалентно атому 66 - код ASCII для B
"B" -- эквивалентно ряду {66}
Повторим, 'B' - это просто вариант записи, эквивалентный числу 66. В Euphoria, по сути, нет никаких символов, а есть только числа (атомы).
Имейте в виду, что атом неэквивалентен одноэлементному ряду, содержащему ту же самую величину, хотя в интерпретаторе и есть несколько встроенных подпрограмм, которые обходятся с ними сходным образом.
Существует несколько специальных символов, которые вводятся вместе с косой чертой как два знака, но имеют единственное значение как атом:
\n новая строка - перевод строки, LF
\r возврат каретки, CR
\t табуляция
\\ собственно косая черта (солидус)
\" двойная кавычка
\' одинарная кавычка
Например, "Hello, World!\n", или '\\'. Редактор Euphoria отображает строки символов и отдельные символы в зелёном цвете.
Комментарии начинаются с двух знаков "минус" и продолжаются до конца текущей строки. То есть,
-- это комментарий
Комментарии игнорируются компилятором и никак не влияют на скорость исполнения программы. Редактор отображает комментарии в красном цвете.
В самой первой строке вашей программы (и только в ней) вы можете использовать специальный комментарий, начинающийся с #!, то есть,
#!/home/rob/euphoria/bin/exu
Подобный комментарий информирует командный интерпретатор Linux, что ваш файл следует исполнять под управлением интерпретатора Euphoria, и дает полный путь к интерпретатору Euphoria exu. Если вы измените атрибуты этого вашего файла, обозначив его как исполняемый, вы сможете запускать его, просто введя его имя в командной строке как это делается со стандартными командами Linux, то есть вам уже не нужно будет предварительно вводить "exu". Под DOS и Windows эта первая строка с #! трактуется просто как комментарий (хотя сервер Web Apache под Windows и распознает её). Если вы окутываете свой файл (.il), вместо exu следует указывать backendu.
Подобно другим языкам программирования, Euphoria позволяет вам выполнять вычисления, просто записывая выражения для результатов. Однако в Euphoria вы можете выполнить вычисления на целом ряде данных в одном-единственном выражении, тогда как в большинстве других языков вам пришлось бы конструировать цикл. В Euphoria вы можете обрабатывать сразу весь ряд на манер отдельного числа. Ряд может быть скопирован, подан в подпрограмму и обсчитан как единое целое. Например,
{1,2,3} + 5
является выражением, в котором ряд {1,2,3} и атом 5 складываются и дают результирующий ряд {6,7,8}.
Чуть позже мы приведем множество других примеров.
Операции сравнения выполняются в выражениях с помощью операторов <, >, <=, >=, =, !=, результатом работы каждого из которых является 1 (истина, да) или 0 (ложь, нет).
8.8 < 8.7 -- 8.8 меньше чем 8.7 (0,нет)
-4.4 > -4.3 -- -4.4 больше чем -4.3 (0,нет)
8 <= 7 -- 8 меньше чем или равно 7 (0,нет)
4 >= 4 -- 4 больше чем или равно 4 (1, да)
1 = 10 -- 1 равно 10 (0, нет)
8.7 != 8.8 -- 8.7 не равно 8.8 (1, да)
Как мы скоро увидим, эти операции могут выполняться и с рядами.
Читать дальше