これら2種類のバージョンはどちらもプログラムの機能という意味では同じであるが、前者は階乗をプログラム実行時に計算しているのに対して、後者はそれをコンパイル時に計算する。
虽然从程式功能的观点来看，这两个版本很类似，但前者是在执行期计算阶乘，而后者却是在编译期完成计算。