ReplaceAll 和 ReplaceRepeated 的应用
ReplaceAll
最多只应用一次规则的示例,而 ReplaceRepeated
将在循环中执行,但始终从第一个规则重新启动应用程序。
x + a /. {
a_ + z :> (Print[0]; DoneA),
a_ + x :> (Print[1]; y + z),
a_ + y :> (Print[2]; DoneB)}
(* Prints "1", yields "y+z" *)
x + a //. {
a_ + z :> (Print[0]; DoneA),
a_ + x :> (Print[1]; y + z),
a_ + y :> (Print[2]; DoneB)}
(* Prints "1", then prints "0", yields "DoneA" *)