运用变换规则

expr/.lhs->rhsexpr 运用变换规则
expr/.{lhs1->rhs1,lhs2->rhs2,}将一列变换规则用于 expr 的每一项

运用变换规则.

在表达式上,替换运算符 的使用.
In[1]:=
Click for copyable input
Out[1]=
可给出一列变换规则,将每个规则分别用到表达式的每一项.
In[2]:=
Click for copyable input
Out[2]=
expr/.{rules1,rules2,}将规则 中的每个用于表达式 expr

运用一列变换规则.

通过一列规则就可以得到一列结果.
In[3]:=
Click for copyable input
Out[3]=
SolveNSolve 等函数的返回值是一列规则,每个规则代表一个解.
In[4]:=
Click for copyable input
Out[4]=
运用这些规则可以得到一列结果,每个结果都对应一个解.
In[5]:=
Click for copyable input
Out[5]=

将每一个规则逐次用到 expr 的每一项. 在此过程中进行相应的变换以得到结果.

先用规则 ,当它无法运用时用规则 .
In[6]:=
Click for copyable input
Out[6]=
规则一旦使用就立即产生结果,故里面的 还没有变.
In[7]:=
Click for copyable input
Out[7]=

替换 中的每个规则对 expr 中的每一项只使用一次.

由于每个规则正好用一次,所以这里是交换 .
In[8]:=
Click for copyable input
Out[8]=
可以用这种形式一个接一个地运用一组规则.
In[9]:=
Click for copyable input
Out[9]=

有时需要反复使用规则,直到表达式不再变换为止,这可通过反复替换运算 (或 ReplaceRepeated[expr,rules])来实现.

expr/.rulesexpr 的每一项中用变换规则一次
expr//.rules重复使用规则直到结果不再变化为止

一次或多次重复使用规则.

单一替代运算 使规则在表达式中各项上仅用一次.
In[10]:=
Click for copyable input
Out[10]=
重复替代运算 使得规则被反复使用直到表达式不再变化为止.
In[11]:=
Click for copyable input
Out[11]=
此处规则仅使用一次.
In[12]:=
Click for copyable input
Out[12]=
用重复替换运算反复使用规则直到结果不再变化为止.
In[13]:=
Click for copyable input
Out[13]=

时,Wolfram 语言将给定的规则反复使用到表达式上,直到相继的两个结果相同为止.

当使用一系列循环规则时, 能一直得到不同的结果. 在实际操作中,对一个特定表达式 所能进行的最大循环次数取决于选项的设置. 用可选项 MaxIterations 可以确定对一个表达式的迭代次数. 当需要一直替换下去时,可以用 ReplaceRepeated[expr,rules,MaxIterations->Infinity] 来实现. 通过中断 Wolfram 语言总可以停止迭代.

通过可选项 MaxIterations,可以明确指出 ReplaceRepeated 在运用给定规则时的重复次数.
In[14]:=
Click for copyable input
Out[14]=

替换运算 的特点是将每个规则用在表达式的各项上,而 Replace[expr,rules] 将规则用在整个表达式 expr 上,不能用于表达式的一部分.

可以把 ReplaceMap 以及 MapAt 等共同来指定规则用在表达式的哪一部分上. 另外, ReplacePart[expr,new,pos] 可以用给定的目标来代替表达式的项.

操作符 将规则运用到表达式的每一项.
In[15]:=
Click for copyable input
Out[15]=
没有指定层时,Replace 仅将规则用于整个表达式.
In[16]:=
Click for copyable input
Out[16]=
这里没有进行任何替换.
In[17]:=
Click for copyable input
Out[17]=
将规则运用到第2层从而替换了 .
In[18]:=
Click for copyable input
Out[18]=
expr/.rules将规则运用于表达式 expr 的子项
Replace[expr,rules]仅将规则运用于整个表达式 expr
Replace[expr,rules,levspec]将规则用到由 levspec 指定层表达式 expr 的项上

对整个表达式运用规则.

Replace 给出使用第一个规则后的结果.
In[19]:=
Click for copyable input
Out[19]=
ReplaceList 给出一列规则使用后的结果.
In[20]:=
Click for copyable input
Out[20]=
当一个规则有多种使用方式时,ReplaceList 给出所有的结果.
In[21]:=
Click for copyable input
Out[21]=
此处给出了将原集合分解为两个集合的方式.
In[22]:=
Click for copyable input
Out[22]=
找出由同样元素包在侧面的所有子集.
In[23]:=
Click for copyable input
Out[23]=
Replace[expr,rules]仅以一种方式用 rules
ReplaceList[expr,rules]以所有可能的方式使用 rules

用一种方式或所有可能方式运用规则.