A recursive process is characterized by a shape of expansions followed by contraction. It can also be thought as a chain of deferred operations.

  • The expansion builds up a chain of deferred operations
  • The contraction performs the operations

Recursive process is not the same as recursive procedure:

  • procedure = syntactic fact that the procedure definition refers to the procedure itself
  • process = how the process evolves, not about the syntax

These are not the same: a recursive procedure can produce an iterative process (if tail-call optimised) and a tail-recursive procedure is still syntactically recursive.

See also