Читать «Язык программирования Euphoria. Справочное руководство» онлайн - страница 8

Автор неизвестен

{x+6, 9, y*w+2, sin(0.5)}

Слова "Hierarchical Objects" - "Иерархические Объекты" в акрониме Euphoria отражают именно иерархическую многоуровневую структуру вложенных рядов. Не следует путать это с иерархией классов в некоторых объектно-ориентированных языках.

Почему же мы назвали их атомами? Почему не просто "числами"? Хорошо, нет проблемы, атом является просто числом, но мы хотели иметь отдельный термин, подчёркивающий тот факт, что атом принципиально отличается от ряда и не имеет неких более элементарных составляющих частей среди объектов 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. То есть,