符号的值

当 Wolfram 语言把表达式 变换成 时,它是把 作为纯符号或形式的式子进行处理. 在这种情形下, 是一个可以代表任何表达式的符号.

然而,常常需要给类似 的符号赋一个确定的. 这个值有时是一个数;更多的是另一个表达式.

要对表达式 中的符号 赋一个确定的值,用户可以建立一个 Wolfram 语言变换规则,然后把这个规则用于该表达式. 例如,把 替换成 ,用户应建立变换规则 . 您必须把 作为一对字符输入,中间没有任何空格. 这条规则的含义是 取值为 .

要对一个特定的 Wolfram 语言表达式进行变换,使用 . 替换符号 是由两个字符组成,中间没有空格.

在表达式 中使用变换规则 .
In[1]:=
Click for copyable input
Out[1]=
可以用任何表达式替换 . 这里用 替换 .
In[2]:=
Click for copyable input
Out[2]=
这里给出一个变换规则,Wolfram 系统把它作为符号表达式处理.
In[3]:=
Click for copyable input
Out[3]=
这里使用上述规则,对表达式 进行变换.
In[4]:=
Click for copyable input
Out[4]=
expr/.x->valuevalue 替换表达式 expr 中的 x
expr/.{x->xval,y->yval}进行多个替换

用值替换表达式中的符号.

可以把多个替换规则写成列表一起使用.
In[5]:=
Click for copyable input
Out[5]=

替换算符 使用户可以对一个特定表达式进行变换. 然而,有时用户想要定义一个总是 被使用的变换规则. 例如,无论 何时出现, 总是被 替换.

如同在 "定义变量" 讨论的那样,这可以通过 以值 来实现. 一旦用户做了赋值 ,无论 何时出现, 总是被 替换.

这里给 赋以值 .
In[6]:=
Click for copyable input
Out[6]=
现在 自动被 替换.
In[7]:=
Click for copyable input
Out[7]=
这里给 赋以表达式 .
In[8]:=
Click for copyable input
Out[8]=
现在 替换.
In[9]:=
Click for copyable input
Out[9]=

用户可以把符号的值定义成任何表达式,而不仅是能定义成数. 应该注意,一旦给出了定义,这个定义将一直被使用,直到用户明确改变或消除该定义. 在使用 Wolfram 语言时,忘记清除已经赋给符号的值是常见的出错原因.

x=value定义 x 的值,值将一直被使用
x=.清除定义给 x 的值

符号赋值.

符号 仍然有前边已赋给它的值.
In[10]:=
Click for copyable input
Out[10]=
这里清楚赋给  的值.
In[11]:=
Click for copyable input
现在 没有被定义值,因此它被用作纯符号变量.
In[12]:=
Click for copyable input
Out[12]=

在 Wolfram 语言中一个符号如 可以用作多种不同目的. 事实上,Wolfram 语言的伸缩性主要来自于能够按意愿混合这些目的. 然而,为了避免出错,用户需要直接使用 的某种用途. 最重要的区别在于把 作为另一个表达式的名称和只代表本身的符号变量.

传统的程序语言并不支持符号计算. 只允许变量作为已经赋值的对象的名称. 然而,在 Wolfram 语言中, 能被作为一个纯形式变量进行处理,可以对使用各种变换规则. 当然如果用户明确给出一个定义,如 ,那么 将总是被 代替,而不再作为形式变量.

应当明白,显示定义如 有一个全局效应. 而替换如 仅对指定的表达式 expr 有效. 除非绝对有必要,一般应避免使用显式定义,这样,保持所做的事情是正确的就容易多了.

用户可以将替换和赋值混合使用. 运用赋值,可以对想要作替换的表达式或替换规则给出一个名称.

这里赋给符号 一个值.
In[13]:=
Click for copyable input
Out[13]=
这里用 替换 中的 .
In[14]:=
Click for copyable input
Out[14]=
这里用不同的值替换 的值.
In[15]:=
Click for copyable input
Out[15]=
这里用 Pi 替换 的值,然后计算近似结果.
In[16]:=
Click for copyable input
Out[16]=