Обратите снимание на то, что функция evaln не смогла вычислить строковое выражение `2+3` поскольку оно не является числовым типом данных. Однако функция parse преобразовала это выражение в числовое, что и привело к его вычислению.
2.6. Переменные и их применение
2.6.1. Типы переменных
Как следует из самого названия,
name::type
где name — имя (идентификатор) переменной, type — тип переменной, например, целочисленный (integer), вещественный с плавающей точкой (float), с неотрицательным значением (nonneg), комплексный (complex) и т.д.
2.6.2. Назначение переменным имен
Переменные задаются своим именем —
Имена переменных могут содержать одну букву (например, х, Y или Z), либо ряд букв (Xmin или Xmax). В любом случае имя переменной надо начинать с буквы. Некоторые символы, например знак _ могут использоваться в именах (например, Var_1, Var_2). Нельзя, однако, вводить в имена переменных знаки, обозначающие операторы — например, а/b или а-b будет истолковано как деление а на b или вычитание из переменной а переменной b.
Имена могут задаваться в обратных апострофах. При этом они просто тождественны именам без апострофов:
> var1:=123;var2:= `Hello`;
> `var1`;`var2`;
Строчные и прописные буквы в идентификаторах различаются, так что Var1 и var1 — это разные переменные.
Для проверки предполагаемого имени на уникальность достаточно выполнить команду ?name, где name — выбранное имя. Если при этом откроется окно справки с этим именем, значит, оно уже использовано в Maple. Лучше воздержаться от его применения, так как связанная с этим именем команда или функция перестает работать, как только это имя закрепляется за какой-либо переменной.
2.6.3. Присваивание переменным значений
Поскольку Maple 9.5 прежде всего система символьной математики, то по умолчанию любые переменные рассматриваются как объекты символьного типа. Благодаря этому такие переменные могут фигурировать в математических выражениях, (таких как sin(x)/x), без их предварительного объявления. В отличие от обычных языков программирования такое использование переменных не влечет за собой появления сообщений об ошибках и является более естественным.
Для
n:=1 — переменной n присваивается целочисленное значение 1;
х:=123.456 — переменной х присваивается вещественное значение 123.456;
у:=17/19 — переменной у присваивается рациональное значение 17/18;
name:=`Piter` — переменной name присваивается строковое значение `Piter`;
expr:=2*Pi/3 — переменной expr присваивается значение выражения 2л??!!/3;
V:=[1,2,3] — переменной V присваивается значение списка чисел [1,2,3];
М:=[[1,2,3],[4,5,6]] — переменной М присваивается значение двумерного массива;
f:=x->x^2 — переменной f присваивается значение функции пользователя f(x)=x^2.
Правая часть выражения присваивания определяет тип переменной. Например, она может быть целочисленной, действительной, строковой, индексированной (элемент массива) и т.д.
2.6.4. Отмена операции присваивания и команда restart
Переменная, имеющая какое либо значение, занимает в памяти намного больше места, чем неопределенная переменная. У последней место в памяти занимают только символы идентификатора. Поэтому нередко целесообразно отменить присваивание у тех переменных, которые в дальнейшем можно не использовать. Это может понадобиться и в том случае, когда какую-либо переменную с численным или иным значением нужно использовать просто как неопределенную переменную. Рассмотрим следующий пример:
> х:=10;
> х;
> int(х^2,x);
Error, (in int) wrong number (or type) of arguments
Здесь не удалось вычислить интеграл с подынтегральной функцией х^2 из-за того, что переменная х уже определена ранее как целочисленная переменная со значением 10, тогда как для вычисления интеграла она должна быть необъявленной или строковой (убедитесь в этом сами).
Для
> х: =`х`;