function (cuerpo)

Explicación

El cuerpo de una función consta de: una especificación formada por un identificador (defining_designator), una lista de parámetros opcional (formal_part)  y un result_profile que especifica el tipo del resultado que devuelve la función; una secuencia de declaraciones (declarative_part) y, encerrada en un bloque begin..end, la secuencia de sentencias ejecutables, que debe incluir al menos una sentencia de retorno con el resultado de la ejecución de la función. El end del final de la función puede ir acompañado (se recomienda) de un designator que debe coincidir con el identificador de la función.

Si la función es una unidad de librería, el identificador de la función puede incluir el nombre de la unidad padre (parent_unit_name).

El cuerpo de la función puede ir precedido de un indicador de overriding, si sustituye a una operación primitiva de algún tipo.

El cuerpo de una función completa una declaración previa, o sirve de declaración en caso de que no haya habido ninguna previa.

Sintaxis

[overriding_indicator]
function defining_designator [formal_part] result_profile is
   declarative_part
begin
   handled_sequence_of_statements
end [designator];
defining_designator ::= defining_program_unit_name | defining_operator_symbol
defining_program_unit_name ::= [parent_unit_name . ]defining_identifier

designator ::= [parent_unit_name . ]defining_identifier
parent_unit_name ::= name
defining_operator_symbol ::= string_literal

result_profile ::=
    return [null_exclusion] subtype_mark;
  | return access_definition

Ejemplo

function Suma (A, B: Integer) return Integer is
begin
   return A + B;  --  No se puede omitir
end Sumar;

Véase