RPL (プログラミング言語)
IFT ("if-then")文とIFTE ("if-then-else")文を使うことによって後置条件式を実現できる。IFTとIFTEはそれぞれ2つまたは3つのオブジェクトをスタックから取り出す。取り出した2つまたは3つのオブジェクトの最上位のオブジェクトは真偽値として評価される。もしも真ならば、上から2番目のオブジェクト("then"に相当)はスタックに戻される。IFTEは上から3番目の"else"に相当するオブジェクトを必要とする。偽の場合、そのオブジェクトがスタックに戻される。
以下の例は、IFT文の例である。スタックの底辺から1つのオブジェクトを取り出し、それが1ならば、1を"One"に置き換える。
(説明)上のコードの 1 はオブジェクトなので、すぐにスタックに入れられる。そして、==コマンドがスタックから2つのオブジェクトを取り出す。もちろん1を先にスタックに入れているので、1の上のスタックレベルにもオブジェクトがないとオブジェクトが不足する。そのオブジェクトはプログラム実行前にユーザーが自分でスタックに入れる必要がある。==コマンドは2つのオブジェクトを比較して、同じ場合は真(1)を、異なる場合は偽(0)をスタックに入れる。次に"One"もオブジェクトなので、スタックに入れられる。つまりスタックの状態は以下のようになる。
2: 0 or 1(条件式の結果)
1: "One"(thenに相当するオブジェクト)
そして、IFTコマンドが上の状態のスタックから2つのオブジェクトを取り出して、上のスタックレベル2が真(1)ならば、"One"を実行するが、"One"はただのオブジェクトなので、またスタックに入れられる。
以下の例はIFTE文の例である。