Una función es una relación especial donde cada elemento del dominio se asocia con un único elemento del codominio. Esta idea conecta teoría de conjuntos, matemática y programación.
En teoría de conjuntos, una función no se define primero como una fórmula, sino como una relación con una propiedad especial: cada entrada tiene exactamente una salida.
Esta definición permite estudiar funciones de forma general, ya sea que aparezcan como reglas matemáticas, tablas, asignaciones, transformaciones de datos o funciones de programación.
Una relación entre dos conjuntos A y B es un subconjunto del producto cartesiano A × B.
Una relación puede asociar un elemento de A con ninguno, uno o varios elementos de B.
Una función de A en B es una relación que asigna a cada elemento de A exactamente un elemento de B.
El conjunto A es el dominio y B es el codominio.
Para que una relación sea función, cada elemento del dominio debe tener una salida.
Si algún elemento del dominio no aparece como entrada, la relación no representa una función total de A en B.
Además, cada elemento del dominio debe tener una única salida.
Un mismo elemento de entrada no puede tener dos resultados distintos.
Esta relación es función porque cada elemento de A aparece una vez como primer componente y tiene una única salida.
Esta relación no es función porque el elemento 1 tiene dos salidas distintas: a y b.
También puede ocurrir que una relación asigne una salida única a cada entrada que aparece, pero que falten elementos del dominio.
Si el dominio declarado es A, esta relación no es una función total de A en B porque falta una salida para 3. En programación, a veces se habla de funciones parciales cuando no están definidas para todas las entradas posibles.
En una función f: A → B, el dominio es A, el codominio es B y la imagen es el conjunto de valores de B que realmente se obtienen.
El elemento c está en el codominio, pero no está en la imagen.
| Aspecto | Relación | Función |
|---|---|---|
| Entradas | Pueden no aparecer | Cada elemento del dominio debe aparecer |
| Salidas por entrada | Puede haber varias | Debe haber exactamente una |
| Estructura | Subconjunto cualquiera de A × B | Subconjunto de A × B con existencia y unicidad |
| Ejemplo | Usuario tiene varios permisos | Usuario tiene una fecha de nacimiento |
Una tabla puede representar una función si cada entrada aparece una sola vez y tiene un único resultado.
| Entrada | Salida |
|---|---|
| 1 | 2 |
| 2 | 4 |
| 3 | 6 |
Esta tabla representa la función que duplica cada entrada.
Una función de programación recibe entradas y devuelve una salida. Aunque puede tener efectos secundarios en algunos lenguajes, la idea matemática se refleja cuando una misma entrada produce un resultado definido.
function doble(numero) {
return numero * 2;
}
console.log(doble(1));
console.log(doble(2));
console.log(doble(3));
Esta función asigna a cada número una salida única.
Podemos revisar una relación representada como arreglo de pares.
function esFuncion(dominio, relacion) {
const salidasPorEntrada = new Map();
for (const [entrada, salida] of relacion) {
if (salidasPorEntrada.has(entrada) && salidasPorEntrada.get(entrada) !== salida) {
return false;
}
salidasPorEntrada.set(entrada, salida);
}
return dominio.every(entrada => salidasPorEntrada.has(entrada));
}
const dominio = [1, 2, 3];
const relacion = [[1, "a"], [2, "b"], [3, "b"]];
const noFuncion = [[1, "a"], [1, "b"], [2, "c"], [3, "a"]];
console.log(esFuncion(dominio, relacion));
console.log(esFuncion(dominio, noFuncion));
La primera relación cumple existencia y unicidad. La segunda falla unicidad.
La imagen se obtiene tomando las salidas distintas.
const relacion = [[1, "a"], [2, "b"], [3, "b"]];
function imagen(relacion) {
return new Set(relacion.map(([, salida]) => salida));
}
console.log([...imagen(relacion)]);
El resultado contiene los valores del codominio que realmente aparecen como salida.
| Contexto | Función | Interpretación |
|---|---|---|
| Usuarios | usuario → correo | Cada usuario tiene un correo principal |
| Productos | producto → precio | Cada producto tiene un precio actual |
| Geometría | x → x² | Cada entrada numérica produce un cuadrado |
| Programación | entrada → resultado | Una función transforma datos |
| Bases de datos | id → registro | Cada clave identifica un registro |
Las funciones son relaciones con una restricción fuerte: cada entrada tiene una única salida. Esta definición permite entender funciones matemáticas, tablas, transformaciones de datos y funciones de programación bajo una misma idea.
En el próximo tema estudiaremos funciones inyectivas, sobreyectivas y biyectivas.