|
Контроль за типами объектов
Выражения и их части в 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.
|