值集的操作

DownValues[f]给出 f 的下值集
UpValues[f]给出 f 的上值集
DownValues[f]=rules建立 f 的下值
UpValues[f]=rules建立 f 的上值

建立和寻找符号的值.

Wolfram 语言按变换规则列表的方式有效地保存给出的定义. 当遇到一个符号时,就调用与它有关的规则列表.

在绝大部分情况下,不需要涉及与定义有关的变换规则,只需要用 lhs=. 来添加或删除规则. 然而,在有些情况下,直接进入这些规则是十分有用的.

定义 .
In[1]:=
Click for copyable input
定义 的规则.
In[2]:=
Click for copyable input
Out[2]=

注意,建立 DownValuesUpValues 的返回值规则是为了让左、右两边都不进行计算. 左端包含在 HoldPattern 中,规则被延时,所以右边不立即计算.

正如在 "定义函数" 中讨论的一样,Wolfram 语言按特殊定义出现在一般定义之前的原则对定义排序. 但事实上,没有唯一确定的方式去排序,可以用与 Wolfram 语言默认次序不同的方式去排序,对用 DownValuesUpValues 得到的规则表重新排序就达到目的.

下面是对象  的一些定义.
In[3]:=
Click for copyable input
这里显示了定义的默认顺序.
In[4]:=
Click for copyable input
Out[4]=
这里对 定义的顺序进行反向.
In[5]:=
Click for copyable input
Out[5]=