>810 A and B → A #dup not #ifskip<N> #pop B #marker<N> を例にする(A,Bは真偽値を返すRPN式)。 []はスタック状態(左がスタックトップ)、 //以降はコメント。
●Aがtrueの時 [] A #dup not #ifskip<N> #pop B #marker<N> [true] #dup not #ifskip<N> #pop B #marker<N> [true,true] not #ifskip<N> #pop B #marker<N> [false,true] #ifskip<N> #pop B #marker<N> //偽だったので読み飛ばしは無し [true] #pop B #marker<N> //結果はBのみで決まるのでAは要らない [] B #marker<N> [B] #marker<N> //マーカは読み飛ばす [B] (END)
●Aがfalseの時 [] A #dup not #ifskip<N> #pop B #marker<N> [false] #dup not #ifskip<N> #pop B #marker<N> [false,false] not #ifskip<N> #pop B #marker<N> [true,false] #ifskip<N> #pop B #marker<N> //真なので対応するマーカまで読み飛ばす [false] (END)