Язык программирования Euphoria | страница 22




В 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"}


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

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


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

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

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

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