optional
Full Description
swirl
Syntax
  argument-class argument-type argument-name optional (initial {initial-values})?


Purpose

Declares a function's argument as optional. An optional argument can be omitted from a call by omitting the preceding function argument separator together with the value of the argument.

A value argument that is declared optional can also be provided with a default value or values in curly braces ("{ }"). Modifiable and read-only arguments can also be declared optional, but they can't have default values. Remainder arguments can't be optional.

When an optional argument with no default value is omitted from a function call, it is illegal to access that argument from within the function in any way, except to test whether it was specified. (Whether an optional argument was specified in a call can be determined using the is specified argument test.)

In particular, for an argument whose value is not specified in the function call, these two statements can be made:

  • For an optional value argument with an initial value, the argument takes on the default value specified in the function definition following the keyword initial. Note that the argument still isn't specified, even though it has a value.
  • For an optional value with no initial value, or for a modifiable optional or read-only optional argument, the argument has no usable value. Any attempt to use the value in the function, other than testing it for is specified, is an error.

For example, the following function is defined with an optional argument:

  define function increment modifiable counter x
             by value counter y optional initial {1} as
      set x to x + y

Copyright © OmniMark Technologies Corporation, 1988-1998.