## Выражения: Операции и их приоритет

В выражениях допускаются следующие операции (в порядке повышения приоритета):

`,` | последовательное вычисление
`:=` | присваивание
`or` | логическое ИЛИ
`and` | логическое И
`not` | логическое НЕ
`<= >= <> < > =` | операции сравнения
& | конкатенация строк
`+ -` | арифметическое сложение и вычитание
`* / mod` | арифметическое умножение, деление и остаток
^ | возведение в степень

Приоритет операций может быть изменён с помощью скобок.

Операции присваивания и последовательного вычисления используются для сокращения записи и повышения скорости вычислений. Смысл этих операций и их использование аналогичны языку C. Например, следующие два выражения выдают один и тот же результат, но второе короче и вычисляется эффективней:

    sqrt(a*a+b*b) + 1/sqrt(a*a+b*b)
    R:=sqrt(a*a+b*b), R+1/R

Результатом операции последовательного вычисления является последнее выражение в списке.

Результатом операции присваивания является значение выражения справа от знака `:=`. Переменные, стоящие слева от знака `:=`, являются локальными и не должны совпадать с именами столбцов данных.

Небольшое отличие от языков программирования типа C и Pascal имеется в операциях сравнения. Запись

    0 < x < 1

корректна и имеет общепринятый математический смысл, то есть является сокращённой записью выражения

    0 < x and x < 1

Допускаются цепочки сравнений произвольной длины, включающие любые из 6 операций сравнения, например

    0 < x <= y1 = y2 > 1