Promesas I: ¿Qué es una clausura?

Las clausuras son funciones que recuerdan sus entornos léxicos. Un entorno léxico es el entorno en el que se declaró la función.

static java.util.function.Supplier<String> parent(String value) {
  return () -> value; // La clausura devuelta recuerda value.
}

java.util.function.Supplier<String> remember = parent("remembers me");
// Puede parecer que value desaparece después de que parent retorna, pero no es así.
remember.get(); // "remembers me"
  • Corrige la función greetingMaker() para que devuelva una función que recuerde su saludo.
  • Cuando la función devuelta recibe un nombre, debe devolver "salutation, name".

Ejemplo

java.util.function.Function<String, String> greeting = Program.greetingMaker("Hello");
greeting.apply("James"); // "Hello, James"

Notas

Consulta la pestaña Recursos para obtener más información sobre las clausuras.