Функция (программирование)

Материал из «Знание.Вики»

Функция от англ. function — фрагмент программного кода, к которому можно обратиться из другого места программы[1].

Обращение к функции происходит по её имени (адрес первой инструкции, входящей в функцию). После выполнения функции управление возвращается обратно в адрес возврата, где данная функция была вызвана.

Функция может принимать параметры (аргументы) и должна возвращать некоторое значение. Частным случаем функции является процедура, которая ничего не возвращает. Она может быть объявлена или определена.

Объявление функции, включает в себя имя функции, список параметров (аргументов), тип возвращаемого значения.

Определение функции включает в себя имя функции, список параметров (аргументов), тип возвращаемого значения и тело функции.

Для того, чтобы использовать ранее определённую функцию, необходимо в требуемом месте программного кода указать имя функции и перечислить передаваемые в функцию параметры (аргументы).

Функция имеет локальную область видимости, поэтому все объявления внутри неё не будут влиять на глобальную область видимости. Исключение составляет использование заранее определённых глобальных переменных или объектов.

Параметры (аргументы) функции могут передаваться по ссылке или по значению. В случае передачи параметра (аргумента) по ссылке, функция будет работать с непосредственным объектом. И наоборот, в случае передачи параметра по значению, функция будет работать с копией объекта.

Виды функций

1) вложенные функции. Вложенной функцией называют функцию определённой в теле другой функции;

2) лямбда функции. Лямбда функцией называют функцию определённой в месте использования и не имеющей идентификатора (имени);

3) абстрактные (виртуальные) функции. Виртуальной функцией называют функцию, определённой в классе для последующей перегрузки в дочерних классах;

4) методы. Методом называют функцию, объявленной или определённой в классе;

5) рекурсивная функция. Рекурсивной называют функцию вызывающей саму себя[2].

Примеры

C

1 int main(int argc, char **argv)

{

return 0;

}

2
3
4

Python

1 def sum(a: int, b: int) -> int:
return a + b
2

Haskell

1 sum :: Int -> Int -> Int

sum a b = a + b

2

Литература

  1. Языки программирования. Термины и определения. Национальные стандарты СССР.
  2. Информационные технологии. Национальные стандарты СССР.