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