* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
1048
Программирование в системах компьютерной алгебры
исключительно в учебных целях, считать, что комплексные числа в данном при мере недопустимы). Для контроля за типом данных обычно используются различные функции оцен ки и тестирования. При выявлении ими ошибки, как правило, предусматривается вывод соответствующего сообщения. Для этого используется функция ERROR:
ERROR(expr_1, expr_2, …),
где expr_1, … – ряд выражений (возможно, пустой). Наиболее часто ERROR вы водит просто строковое сообщение об ошибке, например ERROR(`strings`). Полное сообщение об ошибке имеет вид:
Error, (in name) string, …
Приведем пример процедуры, в которой предусмотрен вывод сообщения об ошибке при задании переменной x < 0:
> f := proc (x) if x<0 then error «invalid variable x: %1», x else x^(1/2) end if end proc;
f := proc(x) if x < 0 then error "invalid variable x: %1", x else x^(1/2) end if end proc
> f(3.);
1.732050808
> f(-3.); Error, (in f) invalid variable x: -3. > lasterror;
"invalid variable x: %1", 3
> lastexception;
f, "invalid variable x: %1", 3 Эта процедура вычисляет квадратный корень из числа x. При x < 0 выводится заданное сообщение об ошибке. Еще раз обращаем внимание читателя на учебный характер данного примера, поскольку вычисление квадратного корня (в том чис ле из комплексных и отрицательных действительных чисел) реализовано встро енной функцией sqrt.
14.2.8. Ключи в процедурах
В объявление процедуры можно включить ключевые слова, вводимые словом
options opseq
Иногда их называют расширяющими ключами. Предусмотрены следующие ключи: • arrow – определяет процедуру оператор в нотации ->; • builtin – определяет функцию как встроенную; • call_external – задает обращение к внешним программным модулям; • copyright – защищает процедуру от копирования; • inline – определяет процедуру как подчиненную (возможно, не для всех процедур – см. справку);