|        | |||||
|  | |||||
| declaration/definition | optional | ||||
| Related Syntax | Related Concepts | ||||
Syntax
  argument-class argument-type argument-name optional (initial {initial-values})?
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:
initial. Note that the argument still isn't specified, even though it has a value.
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
| Related Syntax remainder is specified value | Related Concepts Functions: argument separator ambiguity Functions: using the same argument separator in different definitions | 
| ---- |