如何获得Mathematica内置的全局重写规则列表?

sbl*_*lom 12 wolfram-mathematica

据我所知,Mathematica中的一千多个内置重写规则默认填充全局规则表.有没有办法让Mathematica提供这些规则的完整或部分列表?

Sim*_*mon 11

最好的方法是在Wolfram Research找到一份工作.

如果做不到这一点,我认为对于未完全编译到内核中的内容,您可以恢复大多数规则/定义.看着

Attributes[fn]
Run Code Online (Sandbox Code Playgroud)

fn你感兴趣的命令在哪里.如果它返回

{Protected, ReadProtected}
Run Code Online (Sandbox Code Playgroud)

那么你可以看一下(虽然它通常只是一个MakeBoxes(格式化)定义或AutoLoad/Stub类型定义).看看有什么运行

Unprotect[fn];
ClearAttributes[fn, ReadProtected];
??fn
Run Code Online (Sandbox Code Playgroud)

如果它是一个存根,你经常需要运行一个命令加载它的例子.您还必须从面向用户的命令挖掘到后端实现.最终,你很可能会找到一个编译到内核中的核心命令,你无法看到它的细节.

我之前在创建Graph图表的提示中提到了这一点,并在Mathematica工具包中有什么内容?.

圆形/角度滑块中Experimental`AngularSlider[]提到了一个很好的例子,有一个很好的一口大小和可消化的代码.我会留给你看看生成的代码.

另一个例子是BoxWhiskerChart,你需要调用它一次才能加载所有代码.然后你看到BoxWhiskerChart进行调用Charting`iBoxWhiskerChart,你必须取消保护,等等......

  • 我应该提到,Mathematica众所周知的大多数非常有趣的规则(代表适当性信息的东西),例如集成和求和规则都是不可访问的. (2认同)