関数呼び出しの評価

関数呼び出しの評価は単純です。 関数 abs が次のように定義されていて、 関数呼び出し abs(0.0 - 1.0) を環境 ENV0 の下で評価することを考えてみましょう:

fn abs (x: double): double = if x >= 0.0 then x else ~x

まずはじめに ENV0 の下で呼び出しの引数を評価して ~1.0 を得ます; x~1.0 を束縛して ENV0 を ENV1 に拡張します、 そして ENV1 の下で abs 本体の評価を開始します; 判定 x >= 0~1.0 >= 0 に評価してさらに false にします、これはelseブランチ ~x に実行を続けることを示しています; ~x~(~1.0) 評価してさらに 1.0 にします; そして関数呼び出し abs(0.0 - 1.0) の評価は 1.0 を返します。