Иллюстрированный самоучитель по Mathematica 3/4

Понятие о контекстах. Работа с контекстами.

Для разрешения подобных противоречий в системе Mathematica введен особый механизм контекстов. Напомним, что под контекстом подразумевается некоторое разъяснение характера связанных с контекстом объектов. Другими словами, это означает, что с каждым объектом системы Mathematica (например, с переменными или функциями) связан некоторый контекст. Чисто внешне контекст задается в виде Имя_контекста (обратный апостроф в конце имени и есть признак контекста).

Итак, контекст фактически является некоторым признаком объекта. Каждый объект системы Mathematica имеет свой контекст, который записывается перед именем объекта (знак "'" при этом является разделителем). Обычно он не виден, но существует. Объекты с одинаковыми именами могут иметь разные контексты и действовать по-разному – то есть по контексту. Пользователям полезно усвоить такую аналогию: контексты – это как бы разные папки со своими именами, куда могут помещаться одноименные файлы-объекты.

С другой стороны, один и тот же контекст может принадлежать разным объектам. Например, все системные переменные и встроенные функции имеют контекст System', то есть они относятся к системным объектам, а все символы, вводимые в начале работы с системой, имеют контекст Global (глобальные).

Работа с контекстами

В системе Mathematica есть средства для визуализации контекстов. Прежде всего это функция Context:

Context[Tan]
System`
Context[E]
System`
Context / @Cos, Pi, Abort {System`, System`, System`}

Текущее значение контекста определяет системная переменная $Context или функция Context [ ]:

{$Context,Context[]}
  
{Global`, Global`}

В начале сеанса работы по умолчанию действует контекст Global ~, что означает глобальный статус вводимых символов:

Context/@{q,r,w}
{Global`, Global`, Global`}

Однако контекст может быть заменен на любой нужный пользователю просто указанием его перед соответствующим символом или словом:

{new'q, new' w,Global'r}
{new'q, new'w, r}
Context/@{new' q,new' w,Global' r}
{new', new', Global'}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.