Названия опасных символов, начинающиеся со строчной буквы

Я ищу полный список имен опасных символов, начинающихся со строчной буквы в Mathematica.

На данный момент я знаю три таких имени: min, max и lim. Эти имена появляются в списке LimitsPositioningTokens и рассматриваются как операторы, по крайней мере, когда они вводятся во FrontEnd с надстрочным индексом:

In[3]:= Options[$FrontEnd,LimitsPositioningTokens]
Out[3]= {LimitsPositioningTokens->{\[Sum],\[Product],\[Intersection],
         \[Union],\[UnionPlus],\[Wedge],\[Vee],lim,max,min,\[CirclePlus],
         \[CircleMinus],\[CircleTimes],\[CircleDot]}}

введите здесь описание изображения

Например, введите в FrontEnd следующее (используйте Ctrl+^ для создания надстрочного индекса — это важно!):

In[1]:= max^n+4
(max^n+4)//HoldComplete//FullForm
Out[1]= 4 max^n
Out[2]//FullForm= HoldComplete[Times[Power[max,n],Plus[4]]] 

экран

Вы видите, что в данном случае max^n+4 интерпретируется как 4*max^n.

Кто-нибудь может объяснить, что на самом деле делает опция LimitsPositioningTokens?

Существуют ли другие опасные символы, начинающиеся со строчной буквы в Mathematica?


person Alexey Popkov    schedule 10.08.2011    source источник
comment
Чтобы убедиться, что я вижу это правильно, я запустил FullForm[max^n + 4] (где верхний индекс ^ был сгенерирован, как указано выше) и получил Times[4, Power[max,n]]. Это похоже на худший вид ошибки.   -  person rcollyer    schedule 10.08.2011
comment
@rcollyer Алексей Возможно, вам следует опубликовать $Version и $System, так как это похоже на версию/систему. Как на ПК, так и на Mac под управлением M8 я не смог подтвердить эту ошибку (см. Ниже).   -  person Sjoerd C. de Vries    schedule 10.08.2011
comment
$Version = 7.0 for Mac OS X x86 (64-bit) (February 19, 2009) и $System = Mac OS X x86 (64-bit).   -  person rcollyer    schedule 10.08.2011
comment
@Sjoerd Я проверил это на версиях 7.0.1 и 5.2 для Windows. В обоих случаях проблема остается.   -  person Alexey Popkov    schedule 10.08.2011
comment
Что ж, похоже, это было решено в 8.0.1.   -  person Sjoerd C. de Vries    schedule 10.08.2011


Ответы (1)


Я не могу подтвердить проблему, о которой вы сообщаете. Кроме того, найденные вами жетоны кажутся строками, а не символами.

введите здесь описание изображения

Это на win7-64/M8.0.1, mac lion/M8 моей жены тоже не показывает.

Тот факт, что это строки, похоже, соответствует описанию на странице документа LimitsPositioning.

LimitsPositioningTokens — это параметр ячейки, который может быть установлен в список форм, для которых следует использовать LimitsPositioning->True.

Во всех приведенных там примерах используются строки.


Обновите, чтобы проиллюстрировать мысль, изложенную в комментариях ниже.

Это со стандартной настройкой LimitsPositioningTokens в $FrontEnd:

введите здесь описание изображения

а это с SetOptions[$FrontEnd, LimitsPositioningTokens -> {}]:

введите здесь описание изображения

Обратите внимание, что параметр $FrontEnd с SetOptions является фиксированным. Скорее всего, ваш параметр больше не установлен по умолчанию. Используйте инспектор параметров, чтобы вернуть LimitsPositioningTokens значение по умолчанию (найдите LimitsPositioningTokens с включенными глобальными настройками и удалите крестик рядом с переменной, если он есть).

person Sjoerd C. de Vries    schedule 10.08.2011
comment
Все токены в списке опции LimitsPositioningTokens являются строками. - person Alexey Popkov; 10.08.2011
comment
@rcollyer это опечатка или вышла новая версия 7.1? Я не получил памятку. - person Mr.Wizard; 13.08.2011
comment
@Mr.Wizard, в меню «О программе»: он дал 7.01.0, я сбросил первый ноль. В системной информации, которую он генерирует, он указывает дату создания как февраль 2009 года. - person rcollyer; 13.08.2011
comment
@alexey Я имею в виду, что как строки они не загрязняют пространство имен символов. Поэтому я не думаю, что ваша максимальная проблема связана (напрямую) с LimitsPositioningTokens. - person Sjoerd C. de Vries; 14.08.2011
comment
@Sjoerd LimitsPositioningTokens относится только к FrontEnd, а не к ядру. Это не загрязнит пространство имен ядра. Насколько я понимаю, эта опция управляет тем, как FrontEnd интерпретирует пользовательский ввод. Если я оцениваю SetOptions[$FrontEnd,LimitsPositioningTokens->{}], а затем ввожу max^n+4, используя Ctrl+^ для создания надстрочного индекса, проблема исчезает в версии 7.0.1. - person Alexey Popkov; 15.08.2011
comment
@alexey Из чтения документации и моих собственных экспериментов я понял, что эта опция связана с форматированием, а не с интерпретацией. Некоторые элементы, такие как сигма для суммы, имеют нижние и/или верхние индексы, которые идут снизу и сверху, соответственно. этого элемента, когда этот элемент появляется в строке, но они идут в правом нижнем и правом верхнем углу, когда используются в разделе. LimitsPositioningTokens определяет, какие элементы будут это делать. Попробуйте, например, Limit[1/x, x -> [Бесконечность]] и 1/Limit[1/x, x -> [Бесконечность]]. Не выполнять, а перейти на TraditionalForm. - person Sjoerd C. de Vries; 15.08.2011
comment
@Sjoerd Ввод Limit[1/x, x -> [Infinity]] и 1/Limit[1/x, x -> [Infinity]] и преобразование их в TraditionalForm Display через Cell|Convert to не дает ничего неожиданного: оба отформатированы одинаково (преобразование в TraditionalForm ничего не дает). Я не понимаю, что вы пытаетесь показать этим примером. Я думаю, что примеры в моем вопросе ясно показывают, что в версии 7.01 опция LimitsPositioningTokens влияет на интерпретацию ввода. Вы имеете в виду, что такое поведение является ошибкой и на самом деле должно влиять только на форматирование? Ваш пример не проясняет этого. - person Alexey Popkov; 15.08.2011
comment
@Alexey, обратная косая черта перед тем, как [Бесконечность] исчезла в процессе копирования и вставки. Не могли бы вы попробовать TraditionalForm еще раз, но теперь с обратной косой чертой? Действительно, SetOption[$FrontEnd,LimitsPositioningTokens-›{}] изменяет поведение форматирования, чтобы оно не переходило к боковому стилю в делениях. Сначала позаботьтесь о том, чтобы установить его на исходный набор. Дополнительная информация на reference.wolfram.com/mathematica/ref/LimitsPositioning.html - person Sjoerd C. de Vries; 15.08.2011
comment
@Sjoerd Действительно, нет никакой разницы в том, как эти два выражения преобразуются в токен меню TraditionalForm через Cell|Convert to|TraditionalForm в версии 7.0.1! Вот выражения: Limit[1/x, x -> \[Infinity]] и 1/Limit[1/x, x -> \[Infinity]]. И оценка SetOption[$FrontEnd,LimitsPositioningTokens->{}] с перезапуском Mathematica не показывает никакой разницы (ранее я сохранял и восстанавливал исходное значение этой опции). Кстати, символ \ не исчезает, когда я ввожу его здесь в комментарии. - person Alexey Popkov; 15.08.2011
comment
@Sjoerd Теперь я понимаю вашу точку зрения, спасибо. Кажется, что LimitsPositioningTokens не должно влиять на интерпретацию ввода, и приятно знать, что эта ошибка исправлена ​​в версии 8.0.1. - person Alexey Popkov; 16.08.2011
comment
@Sjoerd Я принимаю твой ответ. До сих пор в этой ветке не было предложено никаких других имен опасных символов, поэтому я надеюсь, что в Mathematica нет других имен опасных символов, начинающихся со строчной буквы. Единственное, что меня действительно смущает, так это то, что такая опасная ошибка сохранялась так долго (по крайней мере, с версии 5 до версии 7). - person Alexey Popkov; 23.09.2011