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