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