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