此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

2.4.12 修改内部函数

Mathematica 中可以对任何表达式定义变换规则.不仅可以定义添加到 Mathematica 中去的函数,而且还可以对 Mathematica 的内部函数进行变换,于是就可以增强 或修改内部函数的功能.这一功能是强大的,同时也具有潜在的危险. Mathematica 永远遵循给出的规则,当规则不正确时,就会得出错误的结果. 为了避免在修改内部函数过程中的错误, Mathematica 限制对内部函数重新定义. 当要定义内部函数时,首先要去掉这种限制. 完成定义以后要恢复这一限制以免 以后犯错误.

函数的保护

内部函数通常被保护,不能 重新定义它们

去掉 Log 的保护

现在可以自行定义 Log 函数,即使这个定义不正确,Mathematica 也允许你这样定义

不论这个定义正确与否,Mathematica 将使用这个它清

Log 的不正确定义

恢复对 Log 的保护

用户定义的函数高于内部函数,Mathematica 总是先使用用户定义的函数. Mathematica 的内部规则是希望能进行宽广的各种运算. 在有些不愿意用内部规则 的情况下,可以用自己定义的规则来超越内部的规则.

简化 Exp[Log[expr]] 时有一个内部规则

可以自行定义 Exp[Log[expr]] 来代替内部规则

现在使用了自己的定义,而不是内部规则