Почему же мы назвали их атомами? Почему не просто "числами"? Хорошо, нет проблемы, атом является просто числом, но мы хотели иметь отдельный термин, подчёркивающий тот факт, что атом принципиально отличается от ряда и не имеет неких более элементарных составляющих частей среди объектов Euphoria. Конечно, в мире физики "неделимые" атомы были расщеплены на элементарные частицы много лет назад, но в Euphoria они остаются основными строительными блоками для всех данных, которыми Euphoria манипулирует. Согласно же нашей "химической" аналогии, ряды можно представить себе как некие "молекулы", собранные из атомов и других молекул. Но лучшей аналогией являются каталоги и файлы на диске компьютера. Точно так же как каталог на диске может содержать и файлы, и другие каталоги, ряд может содержать и атомы, и другие ряды (а те ряды могут содержать атомы и другие ряды, и так далее).
Как вы скоро сами убедитесь, ряды делают Euphoria очень простой и очень мощной. Понимание атомов и рядов является ключом к пониманию Euphoria.
Примечание о производительности: Не означает ли это, что все атомы размещены в памяти как 8-байтовые числа с плавающей точкой? Нет. Интерпретатор Euphoria обычно размещает целочисленные атомы как машинные целые (4 байта), чтобы сэкономить память и увеличить скорость вычислений. Но когда результат становится дробным или число слишком увеличивается, автоматически производится преобразование к формату с плавающей точкой.
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 отображает строки символов и отдельные символы в зелёном цвете.
2.1.3 Комментарии
Комментарии начинаются с двух знаков "минус" и продолжаются до конца текущей строки. То есть,
-- это комментарий
Комментарии игнорируются компилятором и никак не влияют на скорость исполнения программы. Редактор отображает комментарии в красном цвете.
В самой первой строке вашей программы (и только в ней) вы можете использовать специальный комментарий, начинающийся с #!, то есть,
#!/home/rob/euphoria/bin/exu