Я пытаюсь понять, как работает каррирование в функциональном программировании. Я просмотрел викии задал пару вопросов о том же на SO.
Нужна помощь в понимании лямбда (каррирование)
Я понимаю, что каррирование — это разделение функции, которая принимает n аргументов, на n или меньше функций с одним аргументом в каждой. Теоретически я понимаю это, но я не могу соединить точки во время кодирования того же самого. Возможно, это отсутствие у меня знаний о языках функционального программирования или C # (как и во многих ответах на приведенные выше вопросы).
Во всяком случае, я понимаю groovy и java. Итак, я попытался набросать схему стандартной функции add(a,b)
в groovy, но не смог ее закончить.
def closure = { arg ->
// ??
}
def add(anotherClosure , a){
return closure // ??
}
Может ли кто-нибудь помочь мне понять каррирование с помощью заводных замыканий?