subprogram_specification ::=
procedure
designator [ ( formal_parameter_list ) ]
| [
pure
|
impure
]
function
designator [ (
formal_parameter_list ) ]
return
type_mark
A pure function always returns the same value when called different times with the same actual parameters. Impure functions can return different values when called several times with the same actual parameters. This is the case when for example a impure function reads in a text file, which content changes during simulation.