TypeScript
Tutorial TypeScript: Funciones puras
TypeScript funciones puras: definición y ejemplos. Domina la definición y uso de funciones puras en TypeScript con ejemplos prácticos y detallados.
Aprende TypeScript GRATIS y certifícateLas funciones puras son un concepto central en la programación funcional, que es un estilo de programación en el que las operaciones se realizan principalmente a través de la evaluación de funciones matemáticas y la evitación de cambiar el estado y los datos mutables.
Una función es considerada pura si cumple con dos condiciones principales:
Determinismo: Para los mismos argumentos de entrada, siempre produce el mismo resultado de salida.
No Efectos Secundarios (no side-effects): No modifica ninguna variable de estado externo ni produce ningún efecto observable, más allá de producir un valor de retorno.
Las funciones puras tienen varias propiedades atractivas para la programación. Son predecibles, fáciles de testear, y favorecen a la programación concurrente y paralela ya que no hay riesgo de condiciones de carrera o de cambios inesperados en los datos compartidos.
// Una función pura en TypeScript
function suma(a: number, b: number): number {
return a + b;
}
Esta es una función pura ya que siempre devuelve el mismo resultado cuando se le pasan los mismos valores, y no tiene efectos secundarios, no modifica ninguna variable fuera de su ámbito.
Por otro lado, esta sería una función que no es pura:
let contador = 0;
function incrementaContador(valor: number): number {
contador += valor; // modifica una variable fuera de su ámbito
return contador;
}
// Incluso para la misma entrada, puede devolver valores distintos
console.log(incrementaContador(5)); // 5
console.log(incrementaContador(5)); // 10
console.log(incrementaContador(5)); // 15
La función incrementaContador
no es pura porque tiene un efecto secundario: modifica la variable contador
que está fuera de su ámbito. Además, no siempre devolverá el mismo resultado para la misma entrada, luego carece de determinismo, que es otro aspecto que define a las funciones puras.
Ahora, un ejemplo más complejo. Supóngase que se tiene un array de objetos y se quiere obtener la suma total de una propiedad en particular:
type Producto = {
id: number;
nombre: string;
precio: number;
};
// Función pura
function obtenerTotal(productos: Producto[]): number {
// La función 'reduce' se utiliza aquí para sumar todos los precios
return productos.reduce((total, producto) => total + producto.precio, 0);
}
La función obtenerTotal
es pura porque no altera la entrada original productos
, y siempre devuelve el mismo resultado para la misma entrada.
En resumen, favorecer el uso de funciones puras en el código puede ayudar a escribir programas más limpios, más predecibles y más fáciles de depurar y probar.
Ejercicios de esta lección Funciones puras
Evalúa tus conocimientos de esta lección Funciones puras con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Funciones
Funciones de primera clase
Tipos de utilidad
Clases
OOP y CRUD en TypeScript
Tipos literales
Namespaces
Módulos
Funciones TypeScript
Encapsulación
Interfaces
Funciones puras
Variables y constantes
Funciones flecha
Funciones puras
Control de flujo
Resolución de módulos
Control de flujo
Polimorfismo
Operadores
Funciones flecha
Herencia
Clases y objetos
Clases
Operadores
Encapsulación
Herencia
Funciones
Tipos de unión e intersección
Funciones de alto orden
Inmutabilidad
Interfaces
Funciones de alto orden
Tipos de unión e intersección
Tipos genéricos
Control de flujo
Polimorfismo
Interfaces
Tipos literales
Tipos de utilidad
Tipos genéricos
Inmutabilidad
Herencia de clases
Variables y constantes
Variables y constantes
Funciones de primera clase
Introducción a TypeScript
Todas las lecciones de TypeScript
Accede a todas las lecciones de TypeScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Typescript
Introducción Y Entorno
Variables Y Constantes
Sintaxis
Operadores
Sintaxis
Control De Flujo
Sintaxis
Funciones
Sintaxis
Funciones Flecha
Sintaxis
Clases Y Objetos
Programación Orientada A Objetos
Interfaces
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Inmutabilidad
Programación Funcional
Funciones Puras
Programación Funcional
Funciones De Primera Clase
Programación Funcional
Funciones De Alto Orden
Programación Funcional
Tipos Literales
Tipos De Datos Avanzados
Tipos Genéricos
Tipos De Datos Avanzados
Tipos De Unión E Intersección
Tipos De Datos Avanzados
Tipos De Utilidad
Tipos De Datos Avanzados
Módulos
Namespaces Y Módulos
Namespaces
Namespaces Y Módulos
Resolución De Módulos
Namespaces Y Módulos
Certificados de superación de TypeScript
Supera todos los ejercicios de programación del curso de TypeScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender el concepto de funciones puras y su importancia en la programación funcional.
- Conocer las dos condiciones principales que definen a las funciones puras: determinismo y ausencia de efectos secundarios.
- Identificar ejemplos de funciones puras y no puras para entender la diferencia entre ellas.
- Aprender a diseñar y escribir funciones puras en TypeScript.
- Comprender los beneficios y ventajas de utilizar funciones puras en el desarrollo de software, incluyendo mayor predecibilidad, facilidad de testing y mejor soporte para la programación concurrente y paralela.