# La función

- Sitio: Ikusmira — enciclopedia en castellano de ciencias sociales y humanidades
- URL canónica: https://ikusmira.org/p/la-funcion-informatica/
- Categoría: Informática
- Publicado: 2024-10-08
- Autoría: Josemari Sarasola Ledesma — Editor coordinador; Profesor titular de escuela universitaria, Universidad del País Vasco/Euskal Herriko Unibertsitatea
- Perfiles del autor: https://ekoizpen-zientifikoa.ehu.eus/investigadores/127490/detalle, https://dialnet.unirioja.es/servlet/autor?codigo=333202
- Política editorial (autoría, revisión, correcciones, financiación): https://ikusmira.org/politica-editorial/

La **función** es una regla con nombre: entra un valor por arriba, la regla lo transforma dentro, y sale un resultado por abajo. `con IVA` es una función: entra un precio, sale ese precio multiplicado por 1,21. Hasta aquí, nada que no hiciera una línea suelta de las del capítulo de las variables. Lo que la función añade es el nombre, y el nombre es la pieza importante, porque permite usar la regla sin tenerla presente. Quien escribe `total = con IVA(precio)` ya no piensa en el 1,21: piensa en lo que quiere decir. Ese gesto (meter una regla en una caja, ponerle una etiqueta y trabajar desde entonces con la etiqueta) es la abstracción, y es la herramienta principal con la que se construye todo el software que existe, desde una hoja de cálculo hasta un sistema operativo.

La figura de esta página dibuja dos funciones como máquinas encadenadas. La primera, `con IVA`, multiplica por 1,21; la segunda, `a céntimos`, redondea a dos decimales, y la salida de la primera entra en la segunda:

```
función con IVA(precio)
    devolver precio × 1,21

función a céntimos(importe)
    devolver importe redondeado a dos decimales

total = a céntimos(con IVA(12,50))
```

Es exactamente lo que hace cualquier programa real: encadenar máquinas con nombre. Mueve el deslizador del precio y verás el valor viajando por la cadena con sus tres escrituras (12,50 €, 15,125 €, 15,13 €), la intermedia con tres decimales para que se vea qué trabajo hace la segunda máquina. Pulsa sobre una máquina para cerrarle la tapa: sigue transformando igual, pero ya solo muestra su nombre. Y debajo hay una segunda entrada, con su propio deslizador, que pasa por una tercera instancia de `con IVA`: la misma máquina trabajando otra vez con otro precio, porque una función escrita una vez se puede usar las veces que haga falta.



La idea tiene una historia doble, matemática e industrial. En matemáticas, la palabra la acuñó Leibniz a finales del siglo XVII para las cantidades que dependen de una curva, y la noción moderna (cada entrada tiene exactamente una salida) la fijó Euler en su *Introductio* de 1748. En computación, la pieza práctica fue la subrutina: David Wheeler la describió en 1952 como lo que permitía al EDSAC de Cambridge tener una biblioteca (reglas escritas una vez por alguien que las había pensado bien, y usadas después por todos sin releerlas). Cuatro años después, el manual de FORTRAN ya incluía la FUNCTION como instrucción del lenguaje. La biblioteca de subrutinas es, en miniatura, toda la economía del software: alguien escribe `a céntimos` con cuidado una vez, y diez mil programas redondean bien sin que sus autores hayan tenido que saber cómo se redondea.

La tapa que se cierra en la figura es el punto sutil. Cuando la tapa está abierta ves la regla: multiplicar por 1,21. Cuando está cerrada ves solo el nombre, y el programa funciona idéntico. Esa posibilidad de olvidar el interior es lo que permite construir programas grandes: nadie puede tener en la cabeza los millones de líneas de un navegador, pero cualquiera puede manejar una cadena de veinte nombres. El precio de esa comodidad es que la caja puede estar mal por dentro y el nombre no avisar: `con IVA` podría estar multiplicando por 1,19 desde una actualización, y el código que la usa seguiría leyéndose igual de razonable. Las funciones se comprueban por separado, con entradas conocidas y resultados esperados, porque la confianza que da el nombre hay que merecerla.

Hay dos reglas de higiene que distinguen una buena caja de una trampa. La primera es que la función solo mire lo que entra por su entrada y solo cambie lo que sale por su salida: una `con IVA` que además anotara el precio en una caja global funcionaría, pero cada uso dejaría una huella invisible en el estado, y dos llamadas con la misma entrada podrían dar resultados distintos según lo que hubiera pasado antes. La segunda es que el nombre diga la verdad entera: `con IVA` que además aplicara un descuento tendría una tapa mentirosa, y el código que la usa decidiría mal sin saberlo. Entrada clara, salida clara, nombre honesto: con esas tres condiciones, una caja se puede cerrar sin miedo.

Y hay veces en que ni con la caja comprobada el programa hace lo que su autor quería. La regla es correcta, la máquina la ejecuta sin un fallo, y el resultado está mal: el error estaba en lo que el autor pidió. De eso trata el siguiente capítulo: la depuración, o qué hacer cuando el programa funciona y no sirve.

## Fuentes

- Gottfried Wilhelm Leibniz — *Nova Methodus pro Maximis et Minimis*, Acta Eruditorum, Leipzig (1684)
- Leonhard Euler — *Introductio in Analysin Infinitorum*, Marcus-Michael Bousquet, Lausana (1748)
- David J. Wheeler — *The Use of Sub-routines in Programmes*, Proceedings of the 1952 ACM National Meeting, Pittsburgh (1952)
- IBM, con John W. Backus y su equipo — *The FORTRAN Automatic Coding System for the IBM 704 EDPM: Programmer's Reference Manual*, International Business Machines Corporation, Nueva York (1956)

---

Cómo citar: Sarasola, Josemari (2024). «La función». Ikusmira. https://ikusmira.org/p/la-funcion-informatica/
Índice del sitio para modelos: https://ikusmira.org/llms.txt
