Dart Academy · Lección

Funciones de orden superior y currificación

Pase, devuelva y aplique parcialmente funciones

Lección 1 de 413 pasos

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)); // 16

Qué 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)); // 6

Sintaxis 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)); // 11

Conozca 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)); // 7

Aplicació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)); // 23

Por 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! 🚀

Gratis para empezar

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

  1. Funciones de orden superior y currificación
  2. fold, reduce y expand
  3. Iterables perezosos y generadores con sync*
  4. Composición de tuberías de funciones puras
← Volver a Dart Academy