条件式

条件式は比較と2つの分岐から構成されています。 例えば次の式は条件式です。


if (x >= 0) then x else ~x

if, then, else は ATS のキーワードです。 条件式では if 直後の式が比較式、thenelse 直後の式はそれぞれ then 分岐と else 分岐と呼ばれます。

型 T を条件式に割り振るために、bool 型をその比較に割り振り、 型 T を then 分岐と else 分岐の両方に割り振る必要があります。 例えば名前 xint 型であれば、 先の例の条件式には int 型を割り振ることができます。

条件式が正しく型付けできていることを想像してみましょう。 その条件式が評価されるとまずはじめに比較を評価して値を得ることになります。 この値は true もしくは false であることが保証されています。 値が true であれば then 分岐が評価されます。 そうでなければ else 分岐が評価されることになるわけです。

else 分岐を省略した条件式を作ることもできます。 例えば次のような式を作ることができます。


if (x >= 0) then print(x)

これは次の条件式と等価です。


if (x >= 0) then print(x) else ()

()void 型である void 値を表わすことに注意してください。 省略された形の条件式に割り当てる型は void でなければなりません。