Нужна помощь в понимании каррирования с помощью заводных замыканий?

Я пытаюсь понять, как работает каррирование в функциональном программировании. Я просмотрел викии задал пару вопросов о том же на SO.

Нужна помощь в понимании лямбда (каррирование)

Что такое «каррирование»?

Я понимаю, что каррирование — это разделение функции, которая принимает n аргументов, на n или меньше функций с одним аргументом в каждой. Теоретически я понимаю это, но я не могу соединить точки во время кодирования того же самого. Возможно, это отсутствие у меня знаний о языках функционального программирования или C # (как и во многих ответах на приведенные выше вопросы).

Во всяком случае, я понимаю groovy и java. Итак, я попытался набросать схему стандартной функции add(a,b)в groovy, но не смог ее закончить.

def closure = { arg ->
   // ??
}

def add(anotherClosure , a){
    return closure // ??
}

Может ли кто-нибудь помочь мне понять каррирование с помощью заводных замыканий?

13
задан Community 23 May 2017 в 12:08
поделиться