Функции

функция сложить(целое а, целое б): целое
    вернуть а + б;
конец
  • Тип возврата указывается через : после списка параметров (старая запись: ->)
  • вернуть — оператор возврата значения
  • Функция без возвращаемого значения просто не пишет : тип:
функция напечатать_дважды(текст сообщение): целое
    вывести(сообщение);
    вывести(сообщение);
    вернуть 0;
конец

Проверка аргументов при вызове

Компилятор проверяет и количество, и типы аргументов при каждом вызове — как обычной функции, так и функции из подключённого модуля:

функция сложить(целое а, целое б): целое вернуть а + б; конец

сложить(5);        // ошибка: функция 'сложить' ожидает 2 аргумент(ов), передано 1
сложить(5, "три"); // ошибка: несовпадение типов для аргумента 2
сложить(5, 3);     // верно

Параметр, объявленный как контракт, принимает любую структуру, реально его реализующую (структура X : ИмяКонтракта) — не только буквально значение самого контракта.

Обобщённые функции

Поддержаны, с честными ограничениями — см. раздел Обобщённые типы (там же обобщённые структуры).