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" *)