  Каждому
выражению (и другому объекту) в Maple
соответствует связанный с ним тип объекта.
Базисными типами объектов для выражений
являются: string, integer, fraction,
float , арифметические операторы ` +`,
`*`, `^` , и function . Для определения
типа объекта используется команда whattype:
> whattype (15/37);
![[Maple Math]](images/1maple132.gif)
> whattype ([1,2,3,4,5]);
![[Maple Math]](images/1maple133.gif)
> whattype (( x+3 ) * (y-4));
![[Maple Math]](images/1maple134.gif)
Хотя всегда можно запросить Maple о
типе объекта, заранее задать тип объекта
невозможно. Нельзя задать как, например, в
Фортране, чтобы переменная j была всегда целой.
При программировании с Maple имеются случаи,
когда необходимо производить различные
вычисления в зависимости от типа переменной.
Команда type позволяет сделать запрос типа
переменной.
> greetings := ` best regards`;
![[Maple Math]](images/1maple135.gif)
> type (greetings, integer);
![[Maple Math]](images/1maple136.gif)
> type (greetings,
string);greetings:= 'greetings';
![[Maple Math]](images/1maple137.gif)
![[Maple Math]](images/1maple138.gif)
> whattype ( x = y+1 );
![[Maple Math]](images/1maple139.gif)
Имеются еще две полезные команды для
анализа структуры объектов - команда hаstyрe
, которая сообщает, содержит ли объект подобъект
данного типа, и команда has , которая
сообщает, содержится ли определенный подобъект в
объекте.
Приведем примеры:
> hastype (( x+1/2 ) * exp (3),
fraction);
![[Maple Math]](images/1maple140.gif)
> hastype ( x^2+3*x+5, `*` );
![[Maple Math]](images/1maple141.gif)
> has( x^2+3 * x+5, 3 );
![[Maple Math]](images/1maple142.gif)
> has( x^2+3 * x+5, 2 * x );
![[Maple Math]](images/1maple143.gif)
> hastype ( int ( exp (-x^2), x ),
fraction); int ( exp (-x^2), x );
![[Maple Math]](images/1maple144.gif)
![[Maple Math]](images/1maple145.gif)
В то время как эти примеры довольно
очевидны, hаstyрe и has неоценимы при работе с
очень большими объектами.
 
|