开发者

How can one get a list of Mathematica's built-in global rewrite rules?

开发者 https://www.devze.com 2023-03-22 17:50 出处:网络
I understand that over a thousand built-in rewrite rules in Mathematica populate the global rules table by default. Is there any way to get Mathematica to give a full or even partial list of those rul

I understand that over a thousand built-in rewrite rules in Mathematica populate the global rules table by default. Is there any way to get Mathematica to give a full or even partial list of those rule开发者_如何学运维s?


The best way is to get a job at Wolfram Research.

Failing that, I think that for things not completely compiled into the kernel you can recover most of the rules/definitions. Look at

Attributes[fn]

where fn is the command that you're interested in. If it returns

{Protected, ReadProtected}

then there's something you can get a look at (although often it's just a MakeBoxes (formatting) definition or a AutoLoad/Stub type definition). To see what's there run

Unprotect[fn];
ClearAttributes[fn, ReadProtected];
??fn

Quite often you'll have to run an example of the command to load it if it was a stub. You'll also have to dig down from the user-facing commands to the back-end implementations. Eventually you'll most likely reach a core command that is compiled into the kernel that you can not see the details of.

I previously mentioned this in tips for creating Graph diagrams and it got a mention in What is in your Mathematica tool bag?.

An good example, with a nice bite-sized and digestible bit of code is Experimental`AngularSlider[] mentioned in Circular/Angular slider. I'll leave it up to you to look at the code produced.

Another example is something like BoxWhiskerChart, where you need to call it once in order to load all of the code. Then you see that BoxWhiskerChart proceeds to call Charting`iBoxWhiskerChart which you'll have to unprotect to look at, etc...

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号