Funciones de orden superior y currificación
Pase, devuelva y aplique parcialmente funciones
Funciones de orden superior y currificación es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.
Las funciones son valores
En Dart, una función es simplemente un valor que puede almacenar en una variable. Esta única idea abre todo un mundo de patrones funcionales. 🎯
int square(int x) => x * x;
var op = square;
print(op(4)); // 16Qué significa de orden superior
Una función de orden superior es aquella que recibe una función como argumento o devuelve una función. Ya las ha utilizado con métodos de listas.
Pasar una función
Cuando pasa el comportamiento como argumento, quien llama decide qué ocurre. Aquí apply ejecuta cualquier función que reciba.
int apply(int v, int Function(int) f) => f(v);
print(apply(5, (x) => x + 1)); // 6Sintaxis del tipo de función
El tipo int Function(int) se interpreta así: una función que recibe un int y devuelve un int. Los tipos dejan clara su intención.
void run(String Function(String) format) {
print(format('hi'));
}Devolver una función
Una función de orden superior también puede devolver una función. La función devuelta recuerda los valores que la rodeaban cuando se creó.
Function makeAdder(int n) {
return (int x) => x + n;
}Usar la función devuelta
Llame una vez a la función creadora para construir una función especializada y después reutilícela. Cada resultado es su propia pequeña herramienta configurada.
var add10 = makeAdder(10);
print(add10(5)); // 15
print(add10(1)); // 11Conozca la currificación
La currificación transforma una función con varios argumentos en una cadena de funciones con un solo argumento. Se proporciona un valor cada vez.
int Function(int) add(int a) => (int b) => a + b;
print(add(3)(4)); // 7Aplicación parcial
Fije ahora el primer argumento y deje el resto para después. Esto es la aplicación parcial y permite crear helpers reutilizables y preconfigurados.
var add3 = add(3);
print(add3(10)); // 13
print(add3(20)); // 23Por qué currificar
La currificación permite crear funciones especializadas a partir de funciones generales sin reescribir la lógica. Resulta especialmente útil al componer pequeños pipelines.
Tipo de función como parámetro
Puede dar nombre a tipos de función complejos con un typedef para mantener legibles las firmas en todo el código.
typedef IntOp = int Function(int);
int apply(int v, IntOp f) => f(v);Atajo tear-off
En lugar de envolver un método en una lambda, pase directamente su nombre. Este tear-off mantiene las llamadas limpias y ordenadas.
['1', '2', '3'].map(int.parse).forEach(print);Comprobación rápida
Compruebe cuánto ha entendido sobre las funciones de orden superior.
Resumen
Las funciones son valores, así que puede pasarlas y devolverlas. La currificación y la aplicación parcial convierten funciones generales en herramientas especializadas. ¡Buen trabajo! 🚀
Aprende Dart con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Funciones de orden superior y currificación» es gratis?
Sí — el texto completo de «Funciones de orden superior y currificación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Funciones de orden superior y currificación»?
Pase, devuelva y aplique parcialmente funciones Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Dart Academy?
No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Funciones de orden superior y currificación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Dart Academy?
Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Funciones de orden superior y currificación
- fold, reduce y expand
- Iterables perezosos y generadores con sync*
- Composición de tuberías de funciones puras