Вопрос: Какой язык программирования вы предпочитаете
|
Иллюстрированный самоучитель по Mathematica
Основные классы данных
Mathematica
оперирует с тремя основными классами данных:
-
численными данными,
представляющими числа различного вида;
-
символьными данными,
представляющими символы, тексты и математические выражения (формулы);
-
списками — данными
в виде множества однотипных или разнотипных данных.
Каждый из
этих классов данных в свою очередь имеет ряд специальных, более частных типов
данных. На них мы остановимся более подробно.
Численные данные
Двоичные
числа, биты и байты
Минимальной
единицей информации в компьютерной технике является двоичная единица — бит.
Она имеет представление в виде 0 или 1, удобное для реализации простейшими
электронными схемами с двумя состояниями электрического равновесия (например,
триггерами или иными ячейками памяти). Многоразрядные двоичные числа представляют
собой набор цифр 0 и 1, например, 100110 или 111001. Каждый старший разряд относительно
предыдущего имеет весовой коэффициент, равный 2.
Именно с
битами работает микропроцессор на нижнем уровне операций. Однако бит — слишком
мелкая единица, не очень удобная в обращении. К тому же мы привыкли к куда более
удобным и наглядным для нас элементам информации, таким как буквы, цифры, знаки
арифметических операций, спецзнаки и символы псевдографики. В принципе, набор
этих знаков, минимально необходимый для представления обычной текстовой и цифровой
информации, содержит до 2
8
= 256 элементов. Каждый из них в компьютере
представляется кодом от 0 до 255. Для задания таких кодов достаточно 8 бит
(2^8=256),
которые и образуют наиболее распространенную единицу представления информации
— байт. 1024 байта образуют килобайт (Кбайт), 1024 Кбайт дают
1 Мбайт (мегабайт) и т. д.
Широко применяется
общеизвестный стандарт кодирования текстовой информации ASCII
(American Standard
Code for Information Interchange).
Десятичные
числа
К наиболее
известным типам данных в математике относятся привычные нам десятичные числа
(DECIMAL). Каждый разряд таких чисел имеет представление, заданное одной
из арабских цифр — 0, 1, 2,..., 9. Весовой коэффициент старшего разряда относительно
предшествующего равен 10. Количество цифр, представляющих число, может быть,
в принципе, любым. Десятичные числа относятся к следующим основным типам.
Десятичные
числа наиболее распространены в научно-технических расчетах.
Целые
числа
Целочисленные
данные (Integer) — это целые числа, например 1, 2 или 123, которые представляются
системой без погрешности и ограничения разрядности. Более того, арифметические
операции над целыми числами система выполняет также без погрешностей и без ограничения
числа цифр (рис. 3.1).
Рис.
3.1.
Операции с целыми числами
Количество
цифр, представляющих большое целое число, ограничено лишь его значением, но
не какими-либо фиксированными форматами. Рациональные данные задаются
отношением целых чисел, например 123/567, и также представляют результат точно.
Поэтому система при символьных и численных расчетах всегда старается выдать
результат в виде целых или рациональных чисел, там где это возможно:
1000000/3000000
1/3
(124-1)/(455+1)
41/152
Фактически
целые числа произвольной разрядности в системах символьной математики представляются
списками отдельных цифр. Особая организация списков повышает компактность представления
больших целых чисел. Характерным примером работы с целыми числами большой разрядности
является вычисление факториала n!=1*2*3*. . . *n. Примеры его вычисления уже
приводились (см. рис. 1.16).
Числа
с произвольным основанием
Для вычисления
чисел с произвольным основанием используется конструкция
Основание^^Число
Число должно
быть записано по правилам записи чисел с соответствующим основанием. Если основание
больше 10, для обозначения значений чисел используются буквы от а до
z. Наиболее
известными из чисел с основанием системы счисления, превышающим 10, являются
шестнадцатеричные числа (HEX — от слова
hexagonal). Разряды таких чисел
могут иметь следующие значения:
HEX 0123456789abCdef
DECIMAL 0 1
2 3 4 5 6 7 8 9 10 11 12 13 14 15
Каждый более
старший разряд имеет весовой коэффициент относительно предыдущего разряда, равный
16.
Примеры задания
шестнадцатеричного и двоичного чисел:
16^^123abcde
305839326
2^^1010111
87
Для представления
чисел с произвольным основанием n (до 32) используется функция
BaseForm[expr, n], которая возвращает выражение ехрг в форме числа с основанием
n, которое
указывается как подстрочный индекс.
Примеры использования
функции BaseForm:
BaseForm[87,2]
10101112
BaseForm[305839326,16]
123abcde16
В дальнейшем
мы будем использовать только десятичные числа.
Вещественные
числа
Численные
данные могут быть представлены также десятичными вещественными числами,
которые могут иметь различную форму, например 123.456, 1.23456
10^2,12345.6
10^-2 и т. д. В общем случае они содержат мантиссу с целой и дробной
частями и порядок, вводимый как степень числа 10. Как правило, вещественные
числа в системах символьной математики могут иметь мантиссу с любым, но конечным
числом знаков. Пробел между мантиссой и порядком эквивалентен знаку умножения
*:
23.456*10^100
2.345бх10^101
10^-100
1/
100000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000000000000000000
10.^-100
1.x 10^-100
Как принято
в большинстве языков программирования, целая часть мантиссы отделяется от дробной
части точкой, а не запятой.
Mathematica
производит операции с числами изначально как с целыми. Однако установка значка
разделительной точки означает, что число должно рассматриваться как вещественное.
Например, 1 — целое число, но 1. — уже вещественное число. Для представления
выражения ехрг в форме вещественного числа используется функция N [ехрг] или
N [ехрг, число_цифр_результата].
Примеры:
1/3
1/3
1./3 .
0.333333
N[1/3]
0.333333
N[2*Pi,50]
6.283185307179586476925286766559005768394338
Вещественные
числа всегда имеют некоторую погрешность представления результатов из-за неизбежного
округления и существования так называемого машинного нуля — наименьшего
числа, которое воспринимается как нуль. В терминах системы Mathematica говорят
о приближении числовых данных как об их аппроксимации, хотя в отечественной
литературе под аппроксимацией чаще подразумевают описание некоторой зависимости
между данными достаточно приближенной аналитической зависимостью.
Mathematica
имеет две системные переменные, позволяющие вывести максимально и минимально
возможные значения чисел, с которыми оперирует система:
$MaxMachineNumber
1.79769х10^308
$MinMachineNumber
2.22507х 10^-308
Обратите
внимание на то, что функция N [ехрr, m] позволяет получить число с практическим
любым числом цифр результата m. Разработчики последней версии Mathematica 4
утверждают, что это верно при количестве цифр результата до одного миллиона,
что с лихвой удовлетворяет требованиям подавляющего большинства расчетов и вычислений.
Функции IntegerPart
[x] и FractionalPart [x] обеспечивают возврат целой и дробной частей вещественного
числа х:
N[Pi]
3.14159
IntegerPart[Pi]
3
FractionalPart[Pi]
-3.+ Л
N[FractionalPart[Pi]]
0.141593
Еще одна
функция RealDigits [x] возвращает список реальных цифр результата и число цифр
целой части х:
RealDigits[N[2*Pi]]
{{6, 2, 8, 3,
1, 8, 5, 3, 0, 7, 1, 7, 9, 5, 8, 6}, 1}
Есть и множество
других функций для работы с вещественными числами. Они будут рассмотрены в дальнейшем.
В Mathematica 4 функция RealDigits имеет расширенные формы, например RealDigits
[x, b, len, n]. Для получения цифр
мантиссы
введены функции MantissaExponent [x] и MantissaExpo-nent[x,b].
Комплексные
числа
Многие математические
операции базируются на понятии комплексных чисел. Они задаются в форме
z=Re(z)+I*Im(z)
или
z=Re(z)+i Im
(z)
где знак
I (i) — мнимая единица (квадратный корень из -1), Re (z) — действительная часть
комплексного числа, a Im (z) — мнимая часть комплексного числа. Пример задания
комплексного числа:
2 + I3
или
2 + 3*I
Мнимая часть
задается умножением ее значения на символ мнимой единицы
I. При этом знак умножения
* можно указывать явно или заменить его пробелом — в последнем случае комплексное
число выглядит более естественным. Функции Re [ z ] и Im [ z ] выделяют, соответственно,
действительную и мнимую части комплексного числа
z. Это иллюстрируют следующие
примеры:
Re[3+2*1]
3
Im[3+2 I]
2
Большинство
операторов и функций системы Mathematica работают с комплексными числами. Разумеется,
это расширяет сферу применения системы и позволяет решать с ее помощью различные
специальные задачи — например, относящиеся к теории функций комплексного аргумента.
Комплексные числа широко используются в практике электро- и радиотехнических
расчетов на переменном токе.
Символьные данные и строки
Символьные
данные в общем случае могут быть отдельными символами (например a,
b,..., z), строками (strings) и математическими выражениями ехрг
(от expression — выражение), представленными в символьном виде.
Символьные
строки задаются цепочкой символов в кавычках, например "sssss". В
них используются следующие управляющие символы для строчных объектов:
-
\n— новая строка
(line feed);
-
\ t — табуляция.
Это иллюстрируется
следующими примерами:
"Hello my
friend!"
Hello my friend!
"Hello\nmy\nfriend!"
Hello
my
friend!
"Hello\tmy\tfriend!"
Hello my friend;
Следует помнить,
что управляющие символы не печатаются принтером и не отображаются дисплеем,
а лишь заставляют эти устройства вывода выполнять определенные действия. Mathematica
имеет множество функций для работы со строками, которые будут описаны в дальнейшем.
Выражения
Выражения
в системе Mathematica обычно ассоциируются с математическими формулами,
как показано в следующей таблице.
Запись на
языке Mathematica
|
Обычная математическая
запись
|
|
|
|
|
(а +b^2 + с^З)
/ (3*d - 4*e)
|
|
|
|
|
|
Для записи
математических выражений используются как операторы, так и функции. Их особенности
будут рассмотрены несколько позже. А пока сразу отметим некоторые тонкости синтаксиса
системы, используемого при записи арифметических операций:
-
знак умножения может
быть заменен пробелом;
-
встроенные функции
начинаются с большой буквы и обычно повторяют свое общепринятое математическое
обозначение (за исключением тех, в названии которых есть греческие буквы —
они воспроизводятся латинскими буквами по звучанию соответствующих греческих
букв);
-
круглые скобки ()
используются для выделения частей выражений и задания последовательности их
вычисления;
-
параметры функций
задаются в квадратных скобках [ ];
-
фигурные скобки {}
используются при задании списков.
Новые системы
Mathematica 3/4 обладают обширными возможностями по заданию форматов записи
математических выражений при их выводе на экран или принтер, а также при вводе
с клавиатуры. Они будут рассмотрены в дальнейшем.
Списки и массивы
Наиболее
общим видом сложных данных в системе являются списки (lists). Списки
представляют собой совокупности однотипных или разнотипных данных, сгруппированных
с помощью фигурных скобок:
-
{ 1 , 2 , 3 } — список
из трех целых чисел;
-
{ а , b , с } — список
из трех символьных данных;
-
{1, а, x^ 2} — список
из разнотипных данных;
-
{{a,b},{c,d}} — список,
эквивалентный матрице
a b
c d
-
{х^2+у^2, 2*Sin [x]
} — список из двух математических выражений.
Как видно
из этих примеров, элементы списков размещаются в фигурных скобках — открывающей
{ и закрывающей } . Списки могут быть с вложениями из списков — так получаются
многоуровневые списки (двухуровневый список дает матрицу). Позже
свойства и возможности списков будут рассмотрены детально. С помощью списков
представляются множественные данные — массивы.
Объекты и идентификаторы
В общем случае
система Mathematica оперирует с объектами. Под ними подразумеваются математические
выражения (ехрг), символы (symbols), строки из символов
(strings), упомянутые
выше числа различного типа, константы, переменные, графические и звуковые объекты
и т. д.
Каждый объект
характеризуется своим именем — идентификатором. Это имя должно быть уникальным,
то есть единственным. Существуют следующие правила задания имен:
-
sssss — имя объекта,
заданного пользователем;
-
Sssss — имя объекта,
входящего в ядро системы;
-
$Sssss — имя системного
объекта.
Итак, все
объекты (например функции), включенные в ядро, имеют имена (идентификаторы),
начинающиеся с большой буквы (например Plus, Sin или
Cos). Идентификаторы относящихся
к системе объектов начинаются со знака $. Заданные пользователем объекты следует
именовать строчными (малыми) буквами. Разумеется, под символами s...s подразумеваются
любые буквы и цифры (но не специальные символы, такие как
+, -, * и т. д.).
Объекты (чаще
всего это функции), встроенные в систему, принято называть внутренними или
встроенными. Объекты, которые создает пользователь (в том
числе
используя внутренние объекты), называют внешними объектами. К ним, в
частности, относятся процедуры и функции, составляемые пользователем, которые
детально рассматриваются в дальнейшем.
Функции, опции, атрибуты и директивы
К важному
типу объектов принадлежат функции — объекты, имеющие имя и список параметров,
возвращающие некоторое значение в ответ на обращение к ним по имени с указанием
списка конкретных (фактических) значений параметров. В системах Mathematica
2/3/4 встроенные функции задаются в виде
И
дентификатор_Функции
[ol, о2, o3, ...]
где ol, о2,
оЗ... — объекты (параметры, опции, математические выражения и т. д.). Список
входных параметров задается необычно — в квадратных скобках. В числе входных
параметров могут быть специальные объекты — опции. Они задаются в виде
Имя_опции->3начение_опции
Значением
опции обычно является то или иное слово. Например, в функции построения графиков
Plot [sin[x]
, {x, 0,20} ,Axes->None]
опция Axes->None
указывает на то, что отменяется вывод координатных осей
(Axes). Функция Options [name] выводит для функции с идентификатором name список всех возможных для
нее опций. Некоторые функции, например Sin, могут вообще не иметь опций, другие,
такие как Solve, могут иметь целый «букет» опций:
Options [Sin]
Options [Solve]
{InverseFunctions
-> Automatic, MakeRules -> False,
Method ->
3, Mode -> Generic, Sort -> True,
VerifySolutions
-> Automatic, WorkingPrecision -> 00}
В последнем
случае характер возвращаемого функцией результата может сильно зависеть от значений
опций. Назначение каждой опции мы рассмотрим в дальнейшем. В этой главе они
нам пока не понадобятся.
Каждый объект
может характеризоваться некоторой совокупностью своих свойств и признаков, называемых
атрибутами. Функция Attributes [name] возвращает список всех атрибутов
функции с именем name, например:
Attributes [Sin]
{bistable, NumericFunction,
Protected}
Attributes [Solve]
{Protected}
Как видите,
для функции синуса характерны три атрибута:
-
bistable — указывает
на применимость в списках и таблицах;
-
NumericFunction —
указывает на отношение к числовым функциям;
-
Protected — указывает
на то, что слово Sin защищено от какой-либо модификации.
Кроме того,
в Mathematica 2/3/4 имеется понятие функций-директив. Эти функции не
возвращают значений, а указывают, как в дальнейшем будут выполняться функции,
работа которых зависит от директив. Синтаксис функций-директив тот же, что и
у обычных функций.
Применение
опций и директив делает аппарат функций более гибким и мощным, поскольку позволяет
задавать те или иные свойства функций и условия их выполнения. Это особенно
важно при использовании функций в задачах графики и символьной математики.
Константы
Константы
являются типовыми объектами системы, несущими заранее предопределенное численное
или символьное значение. Это значение не должно меняться по ходу вычисления
документа. К численным константам относятся любые числа, непосредственно
используемые в математических выражениях или программных объектах, например
процедурах и функциях. Так, числа 1 и 2 в выражении
2*Sin [ 1 ] являются численными
константами. Константы-числа не имеют идентификаторов. Идентификатором, в сущности,
является само число. Его представление и хранится в памяти.
Имеется также
ряд именованных констант, которые можно рассматривать как функции без
аргумента, возвращающие заранее заданное значение. Имена констант (и других
объектов, например функций и переменных) представляются их идентификаторами
— непрерывной строкой символов, отождествляемой с именем. В системе Mathematica
большинство идентификаторов имеют естественный математический смысл и начинаются
с большой буквы. Например, Е — это основание натурального логарифма.
Используются
следующие встроенные именованные константы:
-
Complexlnf inity —
комплексная бесконечность, которая представляет величину с бесконечным модулем
и неопределенной комплексной фазой.
-
Degree — число радиан
в одном градусе, которое имеет числовое значение
Pi/180.
-
Е- основание натурального
логарифма с приближенным числовым значением 2 . 71828....
-
EulerGamma — постоянная
Эйлера с числовым значением 0.577216....
-
GoldenRatio — константа
со значением (l+Sqrt[5] ) /2, определяющая деление отрезка по правилу золотого
сечения.
-
I — представляет
мнимую единицу Sqrt [-1].
-
Infinity — «положительная»
бесконечность (со знаком «минус» дает «отрицательную»
бесконечность).
-
Catalan — константа
Каталана 0 . 915966....
-
Pi — число, имеющее
значение 3 .14159... и равное отношению длины окружности к ее диаметру.
Константы,
имеющие значение, дают его в виде вещественного числа:
{N [Degree], N[E], N[Pi]}
{0.0174533,
2.71828, 3.14159}
{N[EulerGamma],N[GoldenRatio],N[Catalan]}
{0.577216, 1.61803,
0.915966}
Константы
в описываемой системе используются вполне естественно, так что от дальнейшего
их описания можно воздержаться.
Размерные
величины
Mathematica
позволяет оперировать с размерными величинами, которые широко используются
в физических и химических расчетах. Размерные величины характеризуются не только
численными значениями, но и единицами измерения, например Meter (метр),
Second (секунда) и т. д. Последние могут стоять в числителе и в знаменателе
выражений, представляющих размерные величины:
1
Meter
Meter
5Meter
5 Meter
0.5Second
0.5Second
Между значением
размерной величины и единицей измерения знак умножения можно не ставить. Это
видно из приведенных выше примеров.
Для облегчения
ввода физических констант, представляющих собой размерные величины, в наборе
файлов Mathematica можно найти файл PhysicalConstants.nb. При его загрузке появляется
дополнительная палитра физических констант, показанная на рис. 3.2.
Для ввода
констант достаточно активизировать соответствующую кнопку с нужной константой.
Будут введено выражение, задающее константу. Ниже представлены примеры ввода
первой и последней констант, содержащихся в палитре, представленных в стандартной
форме:
2.99792458000000028'*^8
Meter/ Second
2.99792х108 Meter/ Second
6. 9599 x
108 Meter
6.9599xl08
Meter
Следует отметить,
что без острой необходимости применять размерные величины не следует, поскольку
они усложняют математические выражения и зачастую не позволяют выполнять с ними
символьные преобразования. Рекомендуется нормировать выражения (формулы) так,
чтобы результаты их вычисления имели безразмерный вид.
Рис.
3.2.
Дополнительная палитра физических констант
Переменные
Переменными
в математике принято называть именованные объекты, которые могут принимать
различные значения, находящиеся в определенном множестве допустимых значений.
Подобно этому, переменными в системе Mathematica являются именованные объекты,
способные в ходе выполнения документа неоднократно принимать различные значения
— как численные, так и символьные. При этом символьные значения переменных,
в отличие от обычных языков программирования, могут представлять собой как исполняемые
математические выражения ехрг, так и некоторые обобщенные классы функций и объектов.
Например, переменная может представлять графический объект, такой как изображение
трехмерной поверхности, или звуковой объект, при активизации которого исполняется
звук. Значением переменных могут быть также множественные объекты — списки.
Имена переменных
называют их идентификаторами. Они должны быть уникальными, то есть не
совпадать с именами директив, атрибутов, опций и функций в ядре системы. Имена
переменных должны начинаться с буквы. Общеприняты, скажем, имена х и у для функциональной
зависимости у (х) или представления графиков, f — для функций. Желательно назначать
именам переменных смысловые значения, например xcoordinaate или ycoordinate
для координат точки. Все сказанное об идентификаторах объектов справедливо и
для идентификаторов переменных, поскольку переменные — распространенные виды
объектов.
Особенности
применения переменных
В отличие
от переменных в математике, каждая переменная в системе
Mathematica, как и в
любой системе программирования, всегда отождествляется с некоторой физической
областью памяти, в которой и хранится значение переменной. Для уменьшения объема
памяти применяются различные способы компактного размещения информации. Надо
помнить, что и имя переменной занимает определенную область памяти. Распределение
памяти под переменные — динамическое. Это означает, что местоположение ячеек
памяти и объем памяти под ту или иную переменную не фиксированы, а меняются
в ходе выполнения задачи.
Заранее объявлять
тип переменной не требуется. Он определяется операцией присваивания переменной
некоторого значения. Такой подход упрощает построение программ и естественен
при использовании переменных в обычной математической литературе.
Без особых
на то указаний переменные в системе Mathematica являются глобальными. Это означает,
что после определения переменной ее значение можно изменить в любом месте документа
или программы. Переменная появляется как действующий объект только после ее
первого определения или задания. Определения переменных выполняются с помощью
операции присваивания, вводимой знаком равенства:
var
= value
Здесь var
— имя переменной, value — ее значение. Ниже представлены основные операции по
присваиванию переменным значений:
-
х = value — переменной
х присваивается вычисленное значение value;
-
х = у = value — вычисленное
значение value присваивается переменным х
и у;
-
x:=value — присваивание
переменной х невычисленного значения value;
-
х =. — с переменной
х снимается определение.
Примеры (комментарий
ln[...] опущен):
-
g = Plot[Sin[x],{x,0,20}]
— переменной д присваивается значение в виде графического объекта;
-
у = 1 + х
^
2—
переменной у присваивается символьное значение в виде математического выражения
(1 + х
^
2);
-
z= {1, 2, х, a + b}—
переменной z присваивается значение в виде списка, содержащего четыре элемента.
Различие
в присваивании переменным значений с помощью знаков «=>> и <<:=»
иллюстрируют следующие примеры:
а=12;
b=а
12
с:=а
с
12
а=15;
b
12
с
15
Как видите,
после первоначальных присваиваний b=а и с: =а обе переменные,
b и с, имеют значение
12. Однако после присваивания переменной а
нового значения (15) переменная b,
которой было присвоено вычисленное значение а, остается равной 12, а
переменная с, которой было присвоено невычисленное значение а, становится равной
15.
Особо обратите
внимание на то, что возможно снятие с переменной определения с помощью символов
«=.» или функции Clear [var]. В символьной математике это очень
полезная возможность, поскольку нередко переменные с одним и тем же именем в
разных частях программы могут иметь разный смысл и представлять объекты, требующие
значительных затрат памяти.
Более того,
эти объекты сохраняются даже при использовании команды New при переходе к подготовке
нового документа. Поэтому рекомендуется всякий раз удалять определения переменных,
как только их использование завершается. Это предотвращает возникновение конфликтов
между одноименными переменными и освобождает память.
Переменные
могут быть локальными, то есть действующими только в пределах объекта,
в котором они объявлены. Таким объектом может быть функция или процедура со
списком входных параметров. Такие объекты мы рассмотрим позже.
Оценивание
переменных и операции присваивания
Специфику
математических выражений в системе Mathematica составляет возможность их оценивания
и изменения в соответствии с заложенными в ядро системы правилами математических
преобразований. В итоге после изменения значение выражения, которое присваивается
переменной, может быть совсем иным, чем до оценивания. Поэтому в целом для определения
переменных используют описанные ниже конструкции.
Основная
функция Set [ Ihs, rhs ] имеет аналогичные по действию упрощенные операторы:
-
Ihs = rhs — вычисляет
правую часть rhs и присваивает ее значение левой части
Ihs. С этого момента
Ihs замещается на rhs всюду, где бы этот идентификатор ни появился;
-
{11, 12, ...} = {rl,
г2, ...} — вычисляет ri и назначает полученные результаты соответствующим
11.
Функция задержанного
присваивания SetDelayed[lhs,rhs] может быть заменена аналогичным по действию
оператором Ihs : =rhs, который назначает правой части rhs роль отложенного
значения левой части Ihs. При этом rhs содержится в невычисленной форме.
После этого, когда появляется идентификатор
Ihs, он заменяется на значение rhs,
вычисляемое каждый раз заново.
При задержанном
(отложенном) присваивании вывода нет, тогда как при обычном немедленном присваивании
lhs=rhs значение rhs вычисляется немедленно и результат выводится в строку вывода.
Функция присваивания
верхнего уровня UpSet [Ihs, rhs] применяется в виде lhs
A
=rhs. При
этом левой части Ihs присваивается значение правой части
rhs, причем это значение
связывается с символами, которые появляются на первом уровне вложенности в
Ihs.
И, наконец,
функцию отложенного присваивания верхнего уровня
UpSetDelayed[lhs, rhs] может
заменить оператор lbs^ :=rhs. При этом величина rhs выполняет роль отложенного
значения Ihs, и связывается это присваивание с символами, которые появляются
на первом уровне вложенности в Ihs.
Отметим еще
одну важную конструкцию SetOptions [s, namel->valuel, name2->value2, .
. . ], которая устанавливает для символа s указанные опции, определяемые по
умолчанию.
Применение
различных типов операций присваивания способствует большей
гибкости системы.
Различия между этими операциями на первый взгляд несущественны, но они принципиальны,
и это станет понятно после более детального знакомства с символьными преобразованиями
и приобретения практики работы с системой.
Имеются также
системные переменные, значениями которых являются данные о системе и
ее работе, например версия применяемой операционной системы, текущая дата, время
в данный момент, машинная точность вычислений и т. д. Многие из таких переменных
имеют отличительный знак $ перед своим именем. Такие переменные более подробно
будут рассматриваться в дальнейшем.
|
|
|