 Understood in this way, the defining equations (\ref{defnfact}) provide an algorithm for computing \(\fact(x)\)—i.e. an effective procedure for calculating its values which can be carried out by a human or mechanical computing device within a finite number of steps. It is for this reason that a class of recursive definitions similar to that exemplified by (\ref{defnfact})— i.e. the general recursive functions—were first employed as the mathematical model of computation on which recursive function theory was originally founded.