Esto se ha clasificado en matemática e informática, por lo que responderé por ambas.
En inglés, la palabra ‘función’ puede significar el propósito principal de algo y viene del latín para ‘realizar’. Cuando utiliza una función matemática, generalmente realiza algunos cálculos. Entonces el término es completamente apropiado. Del mismo modo, una computadora realiza un cálculo al ejecutar una función. Desafortunadamente, en muchos idiomas también podría hacer otras cosas: puede tener efectos secundarios.
La razón de las funciones es bastante obvia: queremos describir cómo un resultado está determinado por sus entradas. Esto lleva a la definición matemática de que una función toma elementos de un conjunto o conjuntos (los argumentos) y produce un elemento único de otro conjunto. Por ‘único’ quiero decir que la salida está determinada por la entrada y nada más. Los conjuntos pueden ser lo que quieras: números, matrices, figuras geométricas, cualquier cosa.
- ¿Qué es un buen algoritmo para convertir un número decimal de coma flotante con muchos, muchos decimales en el equivalente binario?
- ¿Puede C (lenguaje de programación) tratar con grandes números?
- ¿Para qué se usan los cierres de relaciones binarias (teoría de conjuntos)?
- Cómo aprender machine learning con experiencia en negocios
- ¿Todas las integrales pueden ser calculadas por una computadora? Del mismo modo, ¿hay integrales en este momento que los matemáticos no puedan resolver?
Quizás se pregunte por qué insistimos en una salida única. La mayoría de los números tienen dos raíces cuadradas, ¿por qué no permitir funciones multivalor? Estos son útiles en análisis complejos, pero siempre se puede decir que una función produce un conjunto único de valores. Entonces podemos evitar la restricción porque el rango puede ser un conjunto de conjuntos.
En informática deseamos realizar cálculos. Una función sin efectos secundarios (una función pura) corresponde a la definición matemática. Pero cuando escribe código de computadora, generalmente no hay nada que impida que el cálculo cambie los valores de los argumentos, o use o cambie otras variables fuera de la lista de argumentos. Algunas personas dicen que esto es malo. En Haskell está prohibido. Pero no se preocupe, no puede cambiar las variables de Haskell porque no tiene ninguna.
Fortran y Algol no tienen funciones (bueno, sí, pero no usan la palabra ‘función’). Fortran tiene subrutinas y Algol tiene procedimientos. En Algol, un procedimiento real es una función que devuelve un número real (más precisamente un número de coma flotante) y también hay procedimientos enteros y booleanos. Pero estos pueden tener efectos secundarios. Fortran y Algol son idiomas malvados, una característica que tienen en común con la mayoría de los otros idiomas, desafortunadamente. Pascal intenta ser bueno al tener tanto funciones (que devuelven un valor) como procedimientos (que no lo hacen), pero las funciones aún pueden tener efectos secundarios. Muy travieso.
No estoy seguro de que esto responda por qué la definición de una función es como es. Claramente, un programa de computadora tiene que computar; si un cálculo tiene un resultado, tenemos una función (usemos o no el término). Las funciones son una forma de estructurar un programa para que sea más fácil de entender. Las funciones matemáticas son una forma de estructurar una prueba o cálculo matemático.