階乗関数の検証された実装の一つでした。エンコードされた階乗の仕様を実装していることを保証しています。宣言にきっちり従っています。後者をロジックプログラムと考えれば、本質的に前者はロジックプログラムから展開された関数的なバージョンです。仕様の実装の実際はアルゴリズム的な仕様からしばしば遠く外れたものになることがあります。階乗の検証された実装を末尾再帰として得たいかもしれません。階乗の検証された実装であることを示す型が割り当てられています。この関数を呼び出すことで定義されています。階乗の値に等しいことです。割り当てられた型によって捕捉されています。呼び出し毎に強制されます。