A definition can be called simply be writing the name of the definition
to be called. Note that normally a definition is invisible during its
definition. If you want to write a directly recursive definition, you
can use recursive to make the current definition visible.

recursivecompilation -- ; run-time -- gforth ``recursive''

makes the current definition visible, enabling it to call itself
recursively.

Another way to perform a recursive call is

recursecompilation -- ; run-time ?? -- ?? core ``recurse''

calls the current definition.

@progstyle
I prefer using recursive to recurse, because calling the
definition by name is more descriptive (if the name is well-chosen) than
the somewhat cryptic recurse. E.g., in a quicksort
implementation, it is much better to read (and think) "now sort the
partitions" than to read "now do a recursive call".