IF DUP THEN which will test and duplicate the top of the stack on true. This statement actually tests the stack when encountered, in contrast to the previous example, which generates instruction to do the same thing. In fact, most system words are verbs. There is a certain equivalence between defintions and verbs. In fact, most operations could be written as either.
Definitions are easier to code, but their execution, being interpretive, is slow.
Verbs are harder to code, bu are most versatile as they may use the full hardware instruction set and are 100 times faster in execution. It seems that a good balance between ease of coding and execution time is achieved by coding the inner loop as a verb and the remainder as a definition.