Как обработать сообщение «Tag Arrow is Protected» в Mathematica? - PullRequest
2 голосов
/ 24 декабря 2011

Справочная информация: Чтобы поддержать мое изучение теории Галуа, я хочу вычислить группы Галуа по полиномам.Эта функция недоступна в Mma, поэтому я поинтересовался, и мне посоветовали использовать пакет galois в Mma (или Sage / Pari).Пакет galois можно скачать с этого места.http://library.wolfram.com/infocenter/Articles/2872/ (Пакет Галуа был написан в эпоху Mma 3).

При загрузке пакета galois.m Mma отображала следующие сообщения:

<<galois.m
SetDelayed::write: Tag Arrow in Arrow[Color_,{{x1_,y1_},{x2_,y2_}}] is Protected. >>
SetDelayed::write: Tag Norm in Norm[Poly_,a_Symbol] is Protected. >>
SetDelayed::write: Tag Norm in Norm[Poly_,{a__Symbol}] is Protected. >>
General::stop: Further output of SetDelayed::write will be suppressed during this calculation. >>

Вопрос: Достаточно ли простого снятия защиты с Arrow (и т. Д.) Для решения этой проблемы?(Я еще не пробовал. Я хочу дождаться совета эксперта, прежде чем изменять какой-либо стандартный пакет).

EDIT : после рефакторинга в Arrow1 (или ArrowFnc) все еще остаются проблемы.Это было проверено на

 CircleGraph[{a, b, c, d, -a, -b, -c, -d}, F];

(из примера в прилагаемой записной книжке.) Не создает график.

 CircleGraph[{a, b, c, d, -a, -b, -c, -d}, F]

(без;) создает график с дополнительным текстом, напримерFontForm [Символ 18].Стрелки должны содержать только текст переменных a, b, c и т. Д.

Дальнейшие исследования показывают, что FontForm окончательно устарела, это было не обнаружено Mma.См http://reference.wolfram.com/mathematica/ref/FontForm.html

1 Ответ

5 голосов
/ 24 декабря 2011

Вам просто нужно заменить вхождения Arrow на что-то вроде ArrowFcn, а вхождения Norm на что-то вроде NormFcn.

Arrow и Norm должны быть добавлены во встроенные функции после написания пакета galois, поэтому в пакете должны использоваться альтернативные имена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...