Функция — это подпрограмма, которая возвращает значение (результат вызова функции). Спецификация функции начинается с зарезервированного слова function, а параметры, если они есть, должны иметь вид in (указанный явно или неявно). Операторы тела функции (исключая операторы программных модулей, вложенных в тело функции) должны содержать один или несколько операторов возврата, -определяющих возвращаемое значение.
Исключение PROGRAM - ERROR возбуждается, если выход из тела функции осуществляется не через оператор возврата. Это исключение не возбуждается, если выполнение функции прекращается в результате исключения.
Пример:
function DOTPRODUCT(LEFT, RIGHT : VECTOR) return REAL is SUM : REAL := 0.0; begin CHECK(LEFT'FIRST = RIGHT'FIRST and LEFT'LAST = RIGHT'LAST); for J in LEFT'RANGE loop SUM := SUM + LEFT(J)*RIGHT(J); end loop; return SUM; end DOTPRODUCT;
Ссылки: вид 6.1, возбуждение исключений 11, вызов функции 6.4, исключение 11, исключение PROGRAM_ERROR 11.1, оператор 5, оператор возврата 5.8, спецификация функции 6.1, тело функции 6.3, формальный параметр 6.1, функция 6.1.