
* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
Язык программирования систем Mathematica 1091 Особая структура пакетов расширений связана с реализацией описанной выше идеологии контекстов. Пакет открывается необязательным текстовым ком ментарием, который обрамляется двойными символами (* и *). Он может быть как однострочным, так и многострочным. Обычно вводный комментарий включа ет в себя имя пакета, наименование фирмы и автора – создателей пакета, историю развития, дату создания и т. д. Если вы программируете для себя, можете на пер вых порах опустить все эти комментарии. Но не забудьте их ввести после отладки пакета, как того требуют культура и дисциплина программирования. Затем пакет открывается словом BeginPackage. Это слово дается с квадратны ми скобками, в которых указывается контекст (см. выше) пакета. Обратите вни мание на то, что после имени пакета должен стоять апостроф или цепочка симво лов, обрамленная апострофами. Имя пакета не должно совпадать ни с одним из известных, то есть должно быть уникальным. Эта команда изменяет контекстную дорожку, и она принимает вид {Имя_паке та`,System`}. Таким образом, на первом месте контекстной дорожки оказывается имя пакета, а на втором – контекст System`. Теперь любой вводимый и невстроен ный символ приобретает контекстную приставку с именем данного пакета. Обратите внимание на то, что контекст System` сохранился на новой контекст ной дорожке, но вторым. Это значит, что если вы вводите слова и символы, встро енные в систему, то они будут замещены новыми определениями. К примеру, если вы решили вычислять функцию Sin[x] по новому и ценному для вас алгоритму, то ему будет отдаваться предпочтение при каждом использовании этой функции, до тех пор, пока вы работаете с данным пакетом расширения. Однако, как только вы перестаете работать с пакетом, восстановится роль встроенной функции Sin[x]. Следующий блок пакета – сообщения о назначении функций. Эти сообщения выводятся, если после загрузки пакета задать вопросительный знак с последую щим именем функции. Данные сообщения не обязательны, но они обеспечивают единство диалога с системой и, безусловно, нужны при профессиональной подго товке пакета. Обычно в этих сообщениях кратко указываются синтаксические правила использования функций и назначение их параметров, даваемых в квад ратных скобках. Затем следует главная часть пакета – определения новых функций. Она от крывается определением Begin["`Private`"]. Оно, не меняя контекстной дорож ки, устанавливает новый текущий контекст Имя_пакета`Private`. Он присваива ется всем ранее не встречавшимся символам. Имя Private принято в пакетах расширения системы Mathematica, хотя в принципе может быть любым другим именем. После него следуют сами определения, в которых могут использоваться любые средства, включенные в ядро системы. В некоторых случаях имена функций могут повторять ранее определенные в ядре системы. Это полезно, если пользователь считает, что введенное им опреде ление уже известной функции более точно или более универсально, чем исполь зованное в системе. В таких случаях надо позаботиться о снятии с них защиты перед новым применением с помощью функции Unprotected. Именно эта часть и определяет существо пакета и его ценность.