Maple: Управляющие клавиши ИМС; замечания и предложения по его использованию и развитию, страница 7

13. Кнопка Delete основного окна Styles-функции Format-группы ГМП,вообще го-воря, недоступна, не позволяя удалять встроенные стили пакета. Однако она стано-вится доступной для вновь определенных пользователем стилей, которые рассматри-ваются пакетом как внешние по отношению к нему средства.

14. В некоторых случаях использования #-символа в качестве идентификатора начала комментария в Input-параграфах возможны особые ситуации, связанные с “за-висанием” пакета и требующие перезагрузки ПК либо в лучшем случае завершения ра-боты с пакетом. Данная ситуация возникает, например при использовании русскоязыч-ного комментария, содержащего букву “я”. В качестве такой конструкции, вызывающей подобную ситуацию, приведем фрагмент: > GS:= 52/17;  Art:= GS^sqrt(10); # Пример комментария. При попытке вычислить данную группу пакет “зависает”, требуя своей перезагрузки. При необходимости использования строчной я-буквы вместо нее следу-ет кодировать заглавную, если не существует иного подхода.

15. Механизм работы с историей вычислений,поддерживаемый history-функци-ей ядра пакета носит весьма ограниченный характер, ни в коей мере не претендуя на глобальность даже в рамках одного ТД. Прежде всего, после выхода из history-режи-ма теряют свои значения On-переменные, что не может позволить считать их глобаль-ными. Поэтому отказ от history-механизма не позволяет в дальнейшем использовать значения его 0n-переменных, декларируемых в качестве глобальных. Для обеспечения же такой возможности пользователь должен самостоятельно об этом побеспокоиться, например путем присвоения значений On-переменных другим переменным еще до вы-хода из данного режима. Более того, новый вход в history-режим вновь начинает нуме-рацию On-переменных с единицы, т.е. отсутствует преемственность в вычислениях да-же в рамках одного ТД. Поэтому средства history-механизма можно рассматривать то-лько в качестве обычной процедуры, возможности которой иногда могут пригодиться. Наряду с этим, в ряде случаев наблюдается неустойчивая работа history-механизма.

        В частности, в результате активизации history-режима ядро пакета автоматически переходит в состояние “вычисление” с выделением красным цветом stop-кнопки 3-й ст-роки 00П, как только начинается формирование первого Input-параграфа ТД. Прерван-ное через эту же кнопку вычисление инициирует вывод соответствующего сообщения с последующей генерацией постоянной метки-идентификатора “[01:=”, являющейся не-определенной. В этом случае ядро пакета не может выйти из history-режима ни по off-предложению, ни по restart-функции, требуя для этого перезагрузки пакета. Следующий простой фрагмент иллюстрирует вышесказанное:

> readlib(history): history():

                    Warning, computation interrupted

[01:=evalf(sqrt(51)+ln(51)/tan(31)); Ü вычисление прервано по stop, затем продолжено

                    -1.760235789

[01:= `Вычисление_1`;   Þ  Вычисление_1

[01:= `Вычисление_2`;   Þ  Вычисление_2

[01:= off;   Þ  off

[01:= restart;

[01:= `Вычисление_3`;   Þ  Вычисление_3

[01:= O1.O1.O1.O1.O1;   Þ  O1O1O1O1O1

Все это говорит о недостаточно продуманной и реализованной системе, обеспечиваю-щей history-механизм; в целом весьма полезного средства, но при наличии существен-но более широких возможностей, подобных, например, пакету Mathematica [28-30,41].

16. Вопреки декларируемому Help-системой, по встроенным функциям ядра па-кета {quit,done,stop} производится закрытие ТД с передачей управления следующему в очереди активных документу, а не завершение текущего сеанса работы с пакетом.

17. Формат кодирования interface-функции не допускает списка аргументов и в случае такой необходимости следует воспользоваться конструкцией следующего вида: map(interface,[<Список параметров>]). Простой фрагмент иллюстрирует сказанное:

> interface(prompt,echo); Þ  Error, (in interface) attempting to return multiple values

> map(interface,[prompt,echo,plotdevice,plotoutput,quiet,showassumed,warnlevel]);  Þ

[ `> `, 1, inline, terminal, false, 1, 3]