вторник, 22 октября 2013 г.

High Order Functions

Functions - first-class values. Тоесть в функциоанльных языках мы можем передавать функции как простых/сложных значений в методы и функции.

High Order Functions - функции, которые получают другие функции в параметрах, и/или возвращают функции в своих результатах.

Function type - тип, который определяет, что в параметр будет передаваться функция.
A => B
(A,B...X) => Z
A,B...Z - some types


Currying - название происходит от имени ученого, который это придумал впервые.
Это процесс, который позволяет вводить часть параметров сейчас, а остальные потом, что по факту означает создает функцией функцию.
def sum(f: Int=>Int): (a: Int, b: Int) => Int

В Scala есть сахар этого
def sum(f: Int=>Int)(a: Int, b: Int): Int

Anonynous function syntax: по принципу функционального типа
(x1: T1, ..., xn: Tn) => E


Комментариев нет:

Отправить комментарий