Piggy-backing з прикладу LennyProgrammers ...
Одне з речей, які пропустили інші приклади, - це те, що ви можете використовувати функції вищого порядку разом з додатком часткової функції (PFA) для прив'язки (або "введення") залежностей у функцію (через її список аргументів) для створення нової функції.
Якщо замість:
doThisWith(Foo, anotherFunction)
ми (щоб бути звичайним у тому, як зазвичай виконується ПФА), виконуємо функцію низького рівня працівника як (міняючи аргументацію порядку):
doThisWith( anotherFunction, Foo )
Тоді ми можемо частково застосувати doThisWith так:
doThis = doThisWith( anotherFunction ) // note that "Foo" is still missing, argument list is partial
Що дозволяє нам згодом використовувати нову функцію так:
doThis(Foo)
Або навіть:
doThat = doThisWith( yetAnotherDependencyFunction )
...
doThat( Bar )
Дивіться також: https://ramdajs.com/docs/#partial
... і, так, суматори / множники - непередумні приклади. Кращим прикладом може бути функція, яка приймає повідомлення та записує їх у електронне повідомлення або надсилає по електронній пошті залежно від того, якою функцією «споживач» передається залежність.
Розширюючи цю ідею, ще довші списки аргументів можуть поступово звужуватися до все більш спеціалізованих функцій із більш короткими та короткими списками аргументів, і звичайно будь-яка з цих функцій може бути передана іншим функціям, як залежності, які частково застосовуються.
OOP приємно, якщо вам потрібна група речей з декількома тісно пов'язаними операціями, але це перетворюється на макіяж, щоб зробити купу класів, кожен з єдиним загальнодоступним методом "зроби це", а-ля "Королівство іменників".