值集的操作
| DownValues[f] | 给出 f 的下值集 |
| UpValues[f] | 给出 f 的上值集 |
| DownValues[f]=rules | 建立 f 的下值 |
| UpValues[f]=rules | 建立 f 的上值 |
Mathematica 按变换规则列表的方式有效地保存给出的定义. 当遇到一个符号时,就调用与它有关的规则列表.
在绝大部分情况下,不需要涉及与定义有关的变换规则,只需要用
和 lhs=. 来添加或删除规则. 然而,在有些情况下,直接进入这些规则是十分有用的.
| In[1]:= |
| In[2]:= |
| Out[2]= |
注意,建立 DownValues 和 UpValues 的返回值规则是为了让左、右两边都不进行计算. 左端包含在 HoldPattern 中,规则被延时,所以右边不立即计算.
正如在 "定义函数" 中讨论的一样,Mathematica 按特殊定义出现在一般定义之前的原则对定义排序. 但事实上,没有唯一确定的方式去排序,可以用与 Mathematica 默认次序不同的方式去排序,对用 DownValues 和 UpValues 得到的规则表重新排序就达到目的.
| In[3]:= |
| In[4]:= |
| Out[4]= |
| In[5]:= |
| Out[5]= |
