5 Equations and functions
ここまでの段階でもtermはかなり複雑に見えるかも知れませんが,根本的には次の4種に過ぎません.
・Variables (`x:bool`や`n:num`など)
・Constants (`T`や`(~)`など)
・Applications (`~p`のような演算子を変数に作用させて得られるtermの組合せ)このApplicationを分解するには
rator `˜p`;;
val it : term = `(˜)`
rand `˜p`;;
val it : term = `p`
とします.なお,term`2`がApplicationであることは
rator `2`;;
val it : term = `NUMERAL`
rand `2`;;
val it : term = `BIT0 (BIT1 _0)`
とすれば確かめられます.
・Abstractions