(DEFINE FACTORIAL , (LAMBDA (N) , , (PROG (RESULT COUNTER) , , , (SETQ RESULT 1) , , , (SETQ COUNTER N) , , , LOOP (COND ((ZEROP COUNTER) (RETURN RESULT))) , , , (SETQ RESULT (TIMES COUNTER RESULT)) , , , (SETQ COUNTER (SUB1 COUNTER)) , , , (GO LOOP) , , ,,,) , ,,,) ,,,)