Описание тега function

Функция (также называемая процедурой, методом, подпрограммой или подпрограммой) - это часть кода, предназначенная для выполнения одной конкретной задачи. Используйте этот тег для вопросов, которые конкретно связаны с созданием или вызовом функций. Чтобы помочь реализовать функцию для выполнения задачи, используйте вместо этого [алгоритм] или тег для конкретной задачи.

Из Википедии:

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

Содержимое подпрограммы - это ее тело, которое выполняется при вызове или вызове подпрограммы.

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

Однако вызов подпрограммы также может иметь побочные эффекты, такие как изменение структур данных в памяти компьютера, чтение или запись на периферийное устройство, создание файла, остановка программы или машины или даже задержка выполнения программы на заданное время. время. Подпрограмма с побочными эффектами может возвращать разные результаты при каждом вызове, даже если она вызывается с теми же аргументами. Примером может служить функция случайных чисел, доступная на многих языках, которая при каждом вызове возвращает другое псевдослучайное число. Широкое использование подпрограмм с побочными эффектами характерно для императивных языков программирования.

Подпрограмму можно закодировать так, чтобы она могла рекурсивно вызывать себя в одном или нескольких местах для выполнения своей задачи. Этот метод позволяет напрямую реализовать функции, определенные с помощью алгоритмов математической индукции и рекурсивного разделения и управления.

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

Это общая единица кода для большинства других языков программирования.

Функция также имеет математическое определение, которое важно в информатике и статистике. Математическая функция - это взаимно-однозначное отношение, при котором для одного аргумента она всегда возвращает одно и то же значение. В чистых функциональных языках, таких как Haskell, разрешены только математические функции.