Promessas I: O que é uma closure?

Closures são funções que lembram seus ambientes léxicos. Um ambiente léxico é o ambiente no qual a função foi declarada.

static java.util.function.Supplier<String> parent(String value) {
  return () -> value; // A closure retornada se lembra de value.
}

java.util.function.Supplier<String> remember = parent("remembers me");
// Pode parecer que value desaparece depois que parent retorna, mas isso não acontece.
remember.get(); // "remembers me"
  • Corrija a função greetingMaker() para que ela retorne uma função que se lembre de sua saudação.
  • Quando a função retornada recebe um nome, ela deve retornar "salutation, name".

Exemplo

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

Notas

Consulte a aba Recursos para obter mais informações sobre closures.