Figure 5 presents examples of if/then/else and while/do statements in VIPR. Arrows in the figures
represent substitution. If execution reaches a ring from which an arrow emanates, then this ring can be
replaced with the ring structure to which the arrow points. This idea of substitution becomes more important
in function calls, as shown in Figure 6. The left side of the figure represents a call to the function defined on the
right. Small circles internal and tangent to rings indicate parameters, so m is a parameter in the call to fun.
Every function must have at least one parameter, called the return address or continuation parameter. This
parameter indicates the next statement to execute following the function call. The continuation parameter
is always located in the lower right corner of the function definition and function call rings. All other
parameters can be matched from function call to function definition by either their location with respect
to the continuation parameter or by an optional label. For example, in Figure 6 parameter m in the call
matches to x in the definition, because they are in the same location relative to the continuation parameter.
In the example shown, the small circle inside the continuation parameter ring indicates that the function
returns a value. By performing the substitutions called for by the arrows in the figure, we can see that the
variable result is passed through to n in the function call.