:: (fact-iter) ( p i n -- n! ) i n > [ p ] [ i p * i 1 + n (fact-iter) ] if ; :: fact-iter ( n -- n! ) 1 1 n (fact-iter) ;