Подобный комментарий информирует командный интерпретатор Linux, что ваш файл следует исполнять под управлением интерпретатора Euphoria, и дает полный путь к интерпретатору Euphoria exu. Если вы измените атрибуты этого вашего файла, обозначив его как исполняемый, вы сможете запускать его, просто введя его имя в командной строке как это делается со стандартными командами Linux, то есть вам уже не нужно будет предварительно вводить "exu". Под DOS и Windows эта первая строка с #! трактуется просто как комментарий (хотя сервер Web Apache под Windows и распознает её). Если вы окутываете свой файл (.il), вместо exu следует указывать backendu.
2.2 Выражения
Подобно другим языкам программирования, Euphoria позволяет вам выполнять вычисления, просто записывая выражения для результатов. Однако в Euphoria вы можете выполнить вычисления на целом ряде данных в одном-единственном выражении, тогда как в большинстве других языков вам пришлось бы конструировать цикл. В Euphoria вы можете обрабатывать сразу весь ряд на манер отдельного числа. Ряд может быть скопирован, подан в подпрограмму и обсчитан как единое целое. Например,
{1,2,3} + 5
является выражением, в котором ряд {1,2,3} и атом 5 складываются и дают результирующий ряд {6,7,8}.
Чуть позже мы приведем множество других примеров.
2.2.1 Операции сравнения
Операции сравнения выполняются в выражениях с помощью операторов <, >, <=, >=, =, !=, результатом работы каждого из которых является 1 (истина, да) или 0 (ложь, нет).
8.8 < 8.7 -- 8.8 меньше чем 8.7 (0,нет)
-4.4 > -4.3 -- -4.4 больше чем -4.3 (0,нет)
8 <= 7 -- 8 меньше чем или равно 7 (0,нет)
4 >= 4 -- 4 больше чем или равно 4 (1, да)
1 = 10 -- 1 равно 10 (0, нет)
8.7 != 8.8 -- 8.7 не равно 8.8 (1, да)
Как мы скоро увидим, эти операции могут выполняться и с рядами.
2.2.2 Логические операции
Логические операции выполняются в выражениях с помощью операторов and (И), or (ИЛИ), xor (НО), и not (НЕ), результатом работы каждого из которых является "истинность" или "ложность" выражения, 1 или 0, то есть:
1 and 1 -- 1 (истина, да)
1 and 0 -- 0 (ложь, нет)
0 and 1 -- 0 (ложь, нет)
0 and 0 -- 0 (ложь, нет)
1 or 1 -- 1 (истина, да)
1 or 0 -- 1 (истина, да)
0 or 1 -- 1 (истина, да)
0 or 0 -- 0 (ложь, нет)
1 xor 1 -- 0 (ложь, нет)
1 xor 0 -- 1 (истина, да)
0 xor 1 -- 1 (истина, да)
0 xor 0 -- 0 (истина, да)
not 1 -- 0 (ложь, нет)
not 0 -- 1 (истина, да)
Вы можете применять эти операторы также к другим числам. Правило такое: нуль означает ложь (нет), не-нуль означает истину (да). Например:
5 and -4 -- 1 (истина, да)
not 6 -- 0 (ложь, нет)
Эти операции также могут применяться и к рядам. См. ниже.
В некоторых случаях выполняется так называемая укороченная проверка истинности. Укороченная проверка производится в выражениях, содержащих операторы and или or.
2.2.3 Арифметические операции
В выражениях Euphoria доступны обычные арифметические операции: сложение, вычитание, умножение, деление, унарный минус, унарный плюс.
3.5 + 3 -- 6.5
3 - 5 -- -2
6 * 2 -- 12
7 / 2 -- 3.5
-8.1 -- -8.1
+8 -- +8
Вычисление результата, который оказывается слишком большим (т.е. вне диапазона от -1e300 до +1e300), порождает один из специальных атомов +infinity (+бесконечность) или -infinity (-бесконечность). На экране эти атомы отображаются как inf или -inf, если результат выводится на печать. Возможно также получение nan или -nan. "nan" означает "not a number" - "не число", т.е. некоторая неопределенная величина (такая как inf деленная на inf). Эти специальные значения введены в Euphoria на основании стандарта IEEE по вычислениям с плавающей точкой. Если вы находите одну из этих специальных величин среди результатов счёта по вашей программе, то обычно это является признаком ошибки в логике вашей программы, хотя inf как промежуточный результат иногда и допустим. Например, 1/inf равно 0, и это может быть "правильным" ответом в вашем алгоритме.