修改内部函数
在 Mathematica 中可以对任何表达式定义变换规则. 不仅可以定义添加到 Mathematica 中去的函数,而且还可以对 Mathematica 的内部函数进行变换,于是就可以增强或修改内部函数的功能.
这一功能是强大的,同时也具有潜在的危险. Mathematica 永远遵循给出的规则,当规则不正确时,就会得出错误的结果.
为了避免在修改内部函数过程中的错误,Mathematica 限制对内部函数重新定义. 当要定义内部函数时,首先要去掉这种限制. 完成定义以后要恢复这一限制以免以后犯错误.
函数的保护.
| Out[1]= |  |
| Out[2]= |  |
现在可以自行定义
Log 函数. 即使这个定义不正确,
Mathematica 也允许你这样定义.
| Out[3]= |  |
不论这个定义正确与否,
Mathematica 将在所有可能的情况下使用用户的定义.
| Out[4]= |  |
| Out[6]= |  |
用户定义的函数高于 Mathematica 内部函数. 一般说来,Mathematica 总是先使用用户定义的函数.
Mathematica 的内部规则是希望能进行宽广的各种运算. 在有些不愿意用内部规则的情况下,可以用可以定义的规则来超越内部的规则.
| Out[7]= |  |
可以自行定义
Exp[Log[expr]] 来代替内部规则.
| Out[9]= |  |