Toda función es una relación, pero no toda relación es una función. La diferencia está en cómo se asocian las entradas con las salidas.
Para entender bien las funciones, primero conviene comprender el concepto de relación. Una relación matemática asocia elementos de un conjunto con elementos de otro conjunto.
Una función es un tipo especial de relación: cada entrada debe estar asociada con una única salida. Esta regla es fundamental en matemática y también en programación.
Una relación indica que existe algún vínculo entre valores. Por ejemplo, podemos relacionar estudiantes con materias, productos con precios, usuarios con permisos o números con sus cuadrados.
Una relación puede representarse mediante pares ordenados, tablas, gráficos, fórmulas o estructuras de datos.
Una forma común de representar una relación es usar pares ordenados. En un par (a, b), el primer valor suele representar la entrada y el segundo valor la salida.
Estos pares indican que 1 se relaciona con 2, 2 con 4 y 3 con 6.
Una función es una relación en la que cada entrada tiene exactamente una salida. No puede ocurrir que la misma entrada tenga dos resultados distintos.
Esta condición permite que una función sea predecible: cuando conocemos la entrada, sabemos que existe un único resultado para esa regla.
La siguiente relación sí cumple la condición de función, porque ninguna entrada aparece asociada con dos salidas diferentes.
| Entrada | Salida | Comentario |
|---|---|---|
| 1 | 3 | La entrada 1 tiene una salida |
| 2 | 5 | La entrada 2 tiene una salida |
| 3 | 7 | La entrada 3 tiene una salida |
La siguiente relación no es una función, porque la entrada 2 aparece con dos salidas diferentes.
| Entrada | Salida | Comentario |
|---|---|---|
| 1 | 4 | No hay conflicto |
| 2 | 6 | Primera salida para 2 |
| 2 | 9 | Segunda salida para 2 |
Si una entrada puede devolver dos resultados distintos dentro de la misma relación, la relación no cumple la definición de función.
Una función permite que entradas distintas produzcan la misma salida. La restricción va en sentido contrario: una misma entrada no puede tener varias salidas.
| Entrada | Salida | ¿Puede ser función? |
|---|---|---|
| -2 | 4 | Sí |
| 2 | 4 | Sí |
Por ejemplo, en f(x) = x², las entradas -2 y 2 producen la misma salida: 4. Aun así, sigue siendo una función.
En programación, una relación puede representarse como una lista de pares, un arreglo de objetos, un mapa de claves y valores o una tabla en una base de datos.
const relacion = [
{ entrada: 1, salida: 3 },
{ entrada: 2, salida: 5 },
{ entrada: 3, salida: 7 }
];
console.log(relacion);
Esta estructura guarda asociaciones explícitas. Luego podemos analizar si esas asociaciones cumplen o no la condición de función.
Podemos escribir un algoritmo que revise si una entrada aparece asociada con más de una salida distinta.
function esFuncion(pares) {
const salidasPorEntrada = new Map();
for (const par of pares) {
if (salidasPorEntrada.has(par.entrada) &&
salidasPorEntrada.get(par.entrada) !== par.salida) {
return false;
}
salidasPorEntrada.set(par.entrada, par.salida);
}
return true;
}
const pares = [
{ entrada: 1, salida: 2 },
{ entrada: 2, salida: 4 },
{ entrada: 2, salida: 5 }
];
console.log(esFuncion(pares));
El resultado es false, porque la entrada 2 tiene dos salidas diferentes.
Cuando una función se define mediante una fórmula, la regla suele garantizar una salida para cada entrada permitida.
function sumarDiez(x) {
return x + 10;
}
console.log(sumarDiez(4));
console.log(sumarDiez(20));
Para cada valor de x, la función devuelve un único resultado.
| Concepto | Descripción | Condición principal |
|---|---|---|
| Relación | Asocia elementos de un conjunto con elementos de otro | Puede tener varias salidas para una misma entrada |
| Función | Es una relación con una regla más estricta | Cada entrada tiene una única salida |
| Función en código | Implementa una transformación de datos | Para los mismos argumentos, debería producir un resultado definido |
El concepto de relación es más amplio que el concepto de función. Una función aparece cuando esa relación cumple una regla precisa: cada entrada se asocia con una sola salida.
En el próximo tema veremos el dominio de una función, es decir, el conjunto de valores de entrada para los cuales la función está definida.