Функции
функция сложить(целое а, целое б): целое
вернуть а + б;
конец
- Тип возврата указывается через
:после списка параметров (старая запись:->) вернуть— оператор возврата значения- Функция без возвращаемого значения просто не пишет
: тип:
функция напечатать_дважды(текст сообщение): целое
вывести(сообщение);
вывести(сообщение);
вернуть 0;
конец
Проверка аргументов при вызове
Компилятор проверяет и количество, и типы аргументов при каждом вызове — как обычной функции, так и функции из подключённого модуля:
функция сложить(целое а, целое б): целое вернуть а + б; конец
сложить(5); // ошибка: функция 'сложить' ожидает 2 аргумент(ов), передано 1
сложить(5, "три"); // ошибка: несовпадение типов для аргумента 2
сложить(5, 3); // верно
Параметр, объявленный как контракт, принимает любую структуру, реально
его реализующую (структура X : ИмяКонтракта) — не только буквально
значение самого контракта.
Обобщённые функции
Поддержаны, с честными ограничениями — см. раздел Обобщённые типы (там же обобщённые структуры).