Я немного сбит с толку относительно термина "замыкание", используемого в документации Groovy .Согласно документации, их определение замыкания больше похоже на анонимную функцию или лямбду.
Я понимаю, что языки, которые поддерживают функции первого класса, обычно позволяют формировать замыкания.Однако между этими двумя понятиями есть различие.
Например, согласно документации Groovy:
Закрытие в Groovy - это анонимный кусок кода, который может принимать аргументы,возвращать значение, а также ссылаться и использовать переменные, объявленные в окружающей его области.
На языке функционального языка такой блок анонимного кода может называться анонимным лямбда-выражением вообще или лямбда-выражением с несвязанными переменнымизакрытое лямбда-выражение, если оно не содержит ссылок на несвязанные переменные (как порог в предыдущем примере).Groovy не делает таких различий.
Тогда, согласно странице Wikipedia о замыканиях:
Термин замыкание часто ошибочно используется для обозначения анонимной функции..
Чего мне не хватает?