RPL (プログラミング言語)
スタックの底辺からオブジェクトを取り出し、それが1と等しいならば、1を"One"に置き換える。それが1でない場合は、それを"Not one"に置き換える。
IFTとIFTEは引数として与えられたプログラムブロック(下のコードの最初の行と最後の行以外の« »で囲まれたところ)を条件によって評価・実行することがある。その動作を利用することによって、IF/THEN/ELSE/END構造よりもさらにコンパクトな条件文を作ることができる。
以下の例はスタックの底辺からオブジェクトを取り出して、それが1と等しいのか、1より小さいのか、1より大きいのかを判断してからそれを"One"、"Less"、"More"のどれかに置き換える。
(説明)RPLはオブジェクトと見なしたものはそれがプログラムブロックでも実行しないでスタックに入れる。そのため、プログラムブロックは評価(evaluate)されるまで実行されない。そのため、IFTEが実行される直前のスタックの状態は以下のようになる。
3: 0 or 1(条件式の結果)
2: « DROP "One" »
1: « 1 < "Less" "More" IFTE »
IFTE文はスタックから3つのオブジェクトを取り出す(つまり上の3つのオブジェクトはスタックから取り除かれる)。条件式の結果が真(1)のときは"then"に対応するプログラムブロック(« DROP "One" »)を評価する。その結果、オブジェクトはプログラムブロックなので実行される。結果が偽(0)の場合は、"else"に対応するプログラムブロック(« 1 < "Less" "More" IFTE »)を評価し、プログラムブロックなので実行する。