Читаем Язык программирования Euphoria. Справочное руководство полностью

Операция формирования ряда записывается с помощью фигурных скобок и запятых:

{a, b, c, ... }

В ней участвует n операндов, где n равно 0 или более. В результате операции из величин элементов создается n-элементный ряд. То есть,

x = {apple, orange*2, {1,2,3}, 99/4+foobar}

Операция формирования ряда выполняется в последнюю очередь, см. Порядок операций.

<p>2.2.9 Другие операции на рядах</p>

Для обозначения некоторых других важных операций, которые вы можете выполнять, используются английские слова, а не специальные символы, о которых шла речь ранее. Эти операции выполняются с помощью функций, встроенных в интерпретаторы ex.exe/exw.exe/exu, следовательно, они всегда под рукой, следовательно, они очень быстрые. Они детально описаны в документе Часть II - Библиотека подпрограмм, но очень важны для программирования на Euphoria, поэтому мы должны упомянуть о них здесь, прежде чем продолжить разговор о других вещах. Эти операции запускаются на исполнение так, как если бы они были подпрограммами, хотя на самом деле их воплощение значительно более эффективно, чем обычных подпрограмм.

Функция length(s) выдаёт вам значение текущей длины ряда s. Это число элементов в ряде s. Некоторые из этих элементов сами могут быть рядами, содержащими другие элементы, но наша функция даёт число элементов самого "верхнего" уровня, считая каждый ряд на этом уровне за единственный элемент. При попытке определения длины атома выдаётся сообщение об ошибке, то есть,

length({5,6,7}) -- 3

length({1, {5,5,5}, 2, 3}) -- 4 (не 6!)

length({}) -- 0

length(5) -- ОШИБКА!

Функция repeat(item, count) выдает ряд, который состоит из элементов 'item', повторенных 'count' раз, то есть,

repeat(0, 100) -- {0,0,0,...,0} т.е. 100 нулей

repeat("Hello", 3) -- {"Hello", "Hello", "Hello"}

repeat(99,0) -- {}

Элемент, подлежащий повторению, может быть любым атомом или рядом.

Функция append(s, item) выдаёт новый ряд, добавляя элемент 'item' после конца ряда 's'. Функция prepend(s, item) выдаёт новый ряд, прибавляя элемент 'item' перед началом ряда 's', то есть,

append({1,2,3}, 4) -- {1,2,3,4}

prepend({1,2,3}, 4) -- {4,1,2,3}

append({1,2,3}, {5,5,5}) -- {1,2,3,{5,5,5}}

prepend({}, 9) -- {9}

append({}, 9) -- {9}

Длина нового ряда всегда на 1 больше, чем длина исходного ряда. Присоединяемый элемент может быть любым атомом или рядом.

Эти две встроенные функции, append() и prepend(), в чём-то похожи на оператор сцепления, &, но имеется и вполне ясное отличие, то есть,

-- присоединение ряда отличается

append({1,2,3}, {5,5,5}) -- {1,2,3,{5,5,5}}

{1,2,3} & {5,5,5} -- {1,2,3,5,5,5}

-- присоединение атома идентично

append({1,2,3}, 5) -- {1,2,3,5}

{1,2,3} & 5 -- {1,2,3,5}

<p>2.2.10 Порядок операций</p>

Порядок выполнения операций интерпретатором показан в таблице:

unary- unary+ not

* /

+ -

&

<= = = !=

and or xor

последняя очередь: { , , , }

Следовательно, 2+6*3 означает 2+(6*3), а не (2+6)*3. Операторы, расположенные в таблице в одной строке, имеют одинаковую очерёдность и поэтому выполняются в том порядке, как записаны в выражении слева направо. Вы можете задать любой другой необходимый вам порядок операций, воспользовавшись в вашем выражении круглыми скобками ( ).

Символ равенства '=', используемый для записи не только операции сравнения, но и команды присваивания, не создаёт двусмысленностей в программе, так как его конкретное назначение вполне ясно из контекста.

<p>2.3 Euphoria против других языков</p>

Положив в основу Euphoria ряды как единственную, простую, общую, рекурсивную структуру данных, удалось избежать громадного объёма сложностей, обычно присутствущих в языках программирования. Массивы, структуры, союзы, массивы записей, многомерные массивы и другие тому подобные объекты других языков все могут быть легко представлены рядами. И структуры высшего уровня, такие как списки, стеки, архивы, очереди, деревья и т.д., тоже не ушли от этой участи.

Перейти на страницу:

Все книги серии Euphoria

Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных