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

Идентификаторы служат для объявления и последующего использования следующих структурных единиц (элементов) языка:

* процедур

* функций

* типов

* переменных

* констант (постоянных)

В процедурах выполняются разнообразные действия и они могут иметь список аргументов (параметров), то есть,

procedure empty()

end procedure

procedure plot(integer x, integer y)

position(x, y)

puts(1, '*')

end procedure

В круглых скобках, следующих за именем объявляемой процедуры, вы через запятые пишете список аргументов (если они вам необходимы). В первом примере пустая процедура не имеет аргументов. Во втором примере хотя и показан список, состоящий всего из двух аргументов, это не означает, что допустимая длина списка как-то ограничена. Кроме того, каждый из аргументов может быть рядом произвольной структуры и длины. Во многих языках списки агрументов с переменной длиной вообще невозможны. А в языке C вы должны для этого установить странные механизмы, которые настолько сложны, что среднему программисту приходится каждый раз перечитывать руководство или консультироваться с местными гениями.

В процедуру подаётся копия величины каждого из аргументов. Временные (формальные) переменные, описывающие каждый из аргументов, могут быть модифицированы вами внутри процедуры и повторно использованы, но эти модификации никак не затрагивают собственно величины подаваемых в процедуру аргументов. То есть, модификации не затрагивают фактическую переменную, подаваемую в процедуру, а касаются только её формальной копии.

Примечание о производительности: Интерпретатор на самом деле копирует ряды или числа с плавающей точкой только в тех случаях, когда это становится действительно необходимо, например:

y = {1,2,3,4,5,6,7,8.5,"ABC"}

x = y

Команда присваивания x = y фактически не создает новую копию y, содержащуюся в x. После выполнения этой команды и x, и y будут просто "указывать" на один и тот же ряд, заданный выражением для y ранее. Если мы позже выполним x[3] = 9, то для x в памяти будет создана новая копия (хотя всё ещё будет только одна общая (для x и y) копия числа с плавающей точкой 8.5 и для внутреннего ряда "ABC"). Такой же приём работает по отношению к "копиям" аргументов, подаваемых в подпрограммы (подпрограмма - это общий термин для процедур, функций и типов).

Функции очень похожи на процедуры, но они выдают результат в виде некоторой величины и поэтому могут быть использованы в выражениях, то есть,

function max(atom a, atom b)

if a = b then

return a

else

return b

end if

end function

Любой объект Euphoria может быть выдан функцией. Вы можете, по сути, иметь множество выдаваемых величин, записав выдачу ряда объектов, например,

return {x_pos, y_pos}

Мы будем использовать общий термин "подпрограмма", когда наше замечание относится одновременно и к процедурам, и к функциям.

В Euphoria имеются специальные функции, которые используются для объявления допустимых величин переменных. Тип должен иметь строго один аргумент и выдавать атом, который может иметь два значения - истина (не-нуль) или ложь (нуль). Типы также могут быть вызваны подобно другим функциям. См. 2.4.3 Задание типа переменной.

Переменным могут быть присвоены значения во время исполнения программы, например,

-- x можно присвоить только целочисленную величину

integer x

x = 25

-- a, b и c можно присвоить *любую* величину

object a, b, c

a = {}

b = a

c = 3.14

Когда вы объявляете переменную, вы даёте ей имя (которое позже предохраняет вас от ошибок правописания) и, задавая тип, определяете величины, которые могут быть законно присвоены вашей переменной во время исполнения программы.

Константы - это такие переменные, которым однажды присваивается некоторая начальная величина и изменить эту величину в дальнейшем уже невозможно, например,

constant MAX = 100

constant Upper = MAX - 10, Lower = 5

constant name_list = {"Fred", "George", "Larry"}

Константе может быть присвоено значение любого выражения, даже результат вычисления предварительно определённой функции, но после присвоения величины константа "защищается" от дальнейших изменений остановкой программы и сообщением об ошибке.

Константы не могут быть объявлены внутри объявления подпрограмм.

<p>2.4.2 Сцена (область видимости)</p>

Каждый объявленный в программе идентификатор имеет сцену, то есть тот участок в общем тексте программы, где его объявление действует, то есть, где этот идентификатор является видимым и доступным для использования интерпретатором при очередных вычислениях, выполняемых им по ходу программы.

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

Все книги серии 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.

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

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