Язык программирования Euphoria - [6]
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, и это может быть "правильным" ответом в вашем алгоритме.
Деление на нуль, как и недопустимые аргументы в математических подпрограммах, например, квадратный корень из отрицательного числа или логарифм неположительного числа и т.п. ошибки, вызывают немедленную аварийную остановку вашей программы с сообщением об ошибке.
Единственной причиной, по которой вам может понадобиться унарный плюс, является желание особо подчеркнуть для читателя вашей программы, что некоторая величина именно положительная, и не иначе. Интерпретатор же не выполняет никаких действий, встретив унарный плюс.
2.2.4 Операции на рядах
Все операции (сравнения, логические и арифметические), описанные выше, равно как и математические подпрограммы, описанные в документе Часть II - Библиотека подпрограмм, могут быть применены к рядам и к отдельным числам (атомам).
Будучи применённой к ряду, унарная (для одного операнда) операция фактически применяется к каждому элементу ряда, и результирующий ряд имеет ту же самую длину. Если какой-то из элементов ряда сам по себе является рядом, это правило действует снова, рекурсивно, по отношению к каждому элементу вложенного ряда. То есть,
>x = -{1, 2, 3, {4, 5}} -- x равно {-1, -2, -3, {-4, -5}}
Если бинарная (для двух операндов) операция применяется по отношению к операндам, каждый из которых является рядом, то эти два ряда должны иметь одинаковую длину. Если условие одинаковости длины рядов выполнено, бинарная операция производится над соответствующими элементами рядов, взятыми из этих двух рядов для формирования результирующего ряда. То есть,
>x = {5, 6, 7, 8} + {10, 10, 20, 100}
>-- x равно {15, 16, 27, 108}
Если в бинарной операции участвуют два операнда, один из которых является рядом, а второй - единственным числом (атомом), этот атом эффективно повторяется для формирования ряда с длиной, равной длине первого операнда. Затем применяются правила, действующие в отношении двух рядов. Некоторые примеры:
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.