Pure Functions
Output of pure function depends only on (1) it's input parameters and (2) it's internal algorithm.
Сигнатура чистой функции должна говорить о ней все. Pure functions signatures are meaningfull.
A pure function has no side effects.
Функции так же являются значениями в FP. В Scala есть функции и методы, и метод может быть конвертирован в функцию при помощи eta expansion-выражения.
Преимущества:
Easy to write, easier to combine, easier to test, debug and parallelise.
Pure functions are idempotent.
Referential transparency
Memoizable
Lazy
Приемы и методы:
HOF
Generic Functions
By-name (lazy) parameters
Multiple parameters groups
Control abstractions
Implicit parameters
Default parameter values
Currying - функция с множеством параметров всегда может быть преобразована в серию вызовов функций, каждый из которых принимает единственный аргумент.
Partially Applied Function - новая функция, полученная путем связывания некоторых параметров функции со значениями.
Статьи:
Last updated
Was this helpful?