Иллюстрированный самоучитель по Maple 6/7

Контроль за типами объектов

Выражения и их части в Maple 7 рассматриваются как объекты. В ходе манипуляций с ними важное значение имеет контроль за типом объектов. Одной из основных функций, обеспечивающих такой контроль, является функция whattype(object), возвращающая тип объекта, например string, integer, float, fraction, function и т. д. Могут также возвращаться данные об операторах.

Примеры применения этой функции даны ниже:

> whattype(2+3);
integer
> whattype(Pi):
symbol
> whattype(123./5)
float
> whattype(l/3i:
fraction
> whattype(sin(x));
function
> whattype([1.2.3,a,b,c])
;list
> whattype(a+b+c);
+
> whattype(a*b/c):
*
> whattype(a'b):
^
> whattype(H-2+3=4);
=

С помощью функции type(object.t) можно выяснить, относится ли указанный объект к соответствующему типу t, например:

> type(2+3,integer):
true

> type(s1n(x).function);
true

> typeChello,string);
false

> type("hello",string);
true

> typed/3.fraction):
true

При успешном соответствии типа объекта указанному (второй параметр) функция type возвращает логическое значение true, в противном случае – false.

Для более детального анализа объектов может использоваться функция hastype(expr .t), где ехрr – любое выражение и t – наименование типа подобъекта.

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

> hastype(2+3,integer);
true

> hastype(2+3/4.integer):
false

> hastype(2*sin(x).function);
true

> hastype(a+b-c/d,'+'):
true

Еще одна функция – has(f.x) – возвращает логическое значение true, если подобъект х содержится в объекте f, и false в ином случае:

> has(2*sin(x),2);
true

> has(2*sin(x).V);
false

> has(2*sin(x),3-l);
true

Следует отметить, что соответствие подобъекта выражения указанному подобъекту понимается в математическом смысле. Так, в последнем примере подобъект "3-1", если понимать его буквально, в выражении 2*sin(r) не содержится, но Maple-язык учитывает соответствие 3-1 = 2, и потому функция has в последнем примере возвращает true.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.