Меня спросили, какая связь между приложением частичной функции и закрытием. Я бы сказал, что нет никого, если я не упущу смысл. Скажем, я пишу на python, и у меня есть очень простая функция MySum, которая определяется следующим образом:
MySum = lambda x, y : x + y;
Теперь я фиксирую один параметр для получения функции с меньшей arity, которая возвращает то же значение, что и MySum, если я назову его с теми же параметрами (частичное приложение):
MyPartialSum = lambda x : MySum(x, 0);
Я мог бы сделать то же самое с C:
int MySum(int x, int y) { return x + y; }
int MyPartialSum(int x) { return MySum(x, 0); }
Итак, глупый вопрос: какая разница? Зачем мне закрывать частичные приложения? Эти коды эквивалентны, я не вижу, что связано с закрытием и частичным приложением.