Я понимаю, что более тысячи встроенных правил перезаписи в Mathematica по умолчанию заполняют таблицу глобальных правил. Есть ли способ получить Mathematica для полного или даже частичного списка этих правил?
Как можно получить список встроенных глобальных правил перезаписи Mathematica?
Ответ 1
Лучший способ - получить работу в Wolfram Research.
В противном случае я думаю, что для вещей, которые не полностью скомпилированы в ядро, вы можете восстановить большинство правил/определений. Посмотрите
Attributes[fn]
где fn
- это команда, которая вас интересует. Если она возвращает
{Protected, ReadProtected}
то вы можете посмотреть (хотя часто это просто определение MakeBoxes
(форматирование) или определение типа AutoLoad/Stub). Чтобы увидеть, что там работает
Unprotect[fn];
ClearAttributes[fn, ReadProtected];
??fn
Довольно часто вам нужно запустить пример команды, чтобы загрузить его, если он был заглушкой. Вам также придется выкапывать из команд, ориентированных на пользователя, на серверные реализации. В конце концов вы, скорее всего, достигнете основной команды, которая скомпилирована в ядро, которое вы не можете увидеть.
Ранее я упоминал об этом в советах по созданию графических диаграмм, и он получил упоминание в Что находится в сумке для инструмента Mathematica?.
Хорошим примером, с красивым размером и удобочитаемым битом кода, является Experimental`AngularSlider[]
, упомянутый в круговом /Angular слайдере. Я оставлю это для вас, чтобы посмотреть на полученный код.
Другой пример - это что-то вроде BoxWhiskerChart
, где вам нужно вызвать его один раз, чтобы загрузить весь код. Затем вы увидите, что BoxWhiskerChart
переходит к вызову Charting`iBoxWhiskerChart
, который вам нужно будет отменить, чтобы посмотреть, и т.д.