Wolfram mathematica 如何获得Mathematica';s内置的全局重写规则?

Wolfram mathematica 如何获得Mathematica';s内置的全局重写规则?,wolfram-mathematica,Wolfram Mathematica,据我所知,Mathematica中超过一千条内置重写规则默认填充全局规则表。有没有办法让Mathematica给出这些规则的完整甚至部分列表?最好的办法是在 如果做不到这一点,我认为对于没有完全编译到内核中的东西,可以恢复大部分规则/定义。看 Attributes[fn] 其中,fn是您感兴趣的命令。如果它回来 {Protected, ReadProtected} 然后,您可以查看一些内容(尽管通常只是makebox(格式化)定义或自动加载/存根类型定义)。看看有什么,快跑 Unprotec

据我所知,Mathematica中超过一千条内置重写规则默认填充全局规则表。有没有办法让Mathematica给出这些规则的完整甚至部分列表?

最好的办法是在

如果做不到这一点,我认为对于没有完全编译到内核中的东西,可以恢复大部分规则/定义。看

Attributes[fn]
其中,
fn
是您感兴趣的命令。如果它回来

{Protected, ReadProtected}
然后,您可以查看一些内容(尽管通常只是
makebox
(格式化)定义或自动加载/存根类型定义)。看看有什么,快跑

Unprotect[fn];
ClearAttributes[fn, ReadProtected];
??fn
如果它是存根,通常需要运行一个命令示例来加载它。您还必须从面向用户的命令深入到后端实现。 最终,您很可能会得到一个核心命令,该命令被编译到内核中,您无法看到其详细信息

我之前在中提到过这一点,在中也有提及

一个很好的例子是中提到的
实验性的`angularlider[]
,它有一口大小和易于消化的代码。我将让您查看生成的代码


另一个例子是类似于
BoxWhiskerChart
,您需要调用它一次才能加载所有代码。然后你会看到,
BoxWhiskerChart
继续调用
Charting`iBoxWhiskerChart
,你必须解除保护才能查看它,等等。

你是说像这样的选项吗?要查看笔记本的所有选项,您可以执行
options[notebook]
,它将为您提供笔记本的所有选项。您可以对任何对象执行此操作。这就是你所说的重写规则吗?我应该提到的是,Mathematica所知道的大多数真正有趣的规则(表示适当信息的东西),例如积分和求和规则,都是不可访问的。通过这种方式可以获得一些内置规则的源代码,但是输出的代码通常是不可读的混乱(主要是由于前置上下文和缩进的缺乏)。您通常使用什么使其更具可读性?@Szabolcs:将上下文添加到
$ContextPath
有助于解决第一个问题。然后将代码复制到一个新的输入单元格中对第二个问题有所帮助。
Begin[]
End[]
对这有好处。如果有一个功能可以自动打印所有相关的信息,其中包含最常见的上下文,那就太好了。