Описание тега partial-application
Частичное приложение - это метод программирования, при котором в функцию передается меньше, чем полное число аргументов, чтобы получить новую функцию, которую можно использовать позже. Это особенно часто встречается в функциональных языках, поддерживающих каррирование.
Частичное приложение - это метод программирования, при котором в функцию передается меньше, чем полное число аргументов, чтобы получить новую функцию, которую можно использовать позже. Это особенно часто встречается в языках функционального программирования, поддерживающих каррирование.
Пример (OCaml)
(* `add` is a function with arity 2 *)
let add a b = a + b
(* `add` is partially applied with the arguemnt `2`,
* yielding a function of arity 1 *)
let add2 = add 2
(* `4` is applied to `add2`, making it fully applied
* and yielding the result of evaluating `add`: `6` *)
let x = add2 4
Пример (Python)
Рассмотрим следующую функцию:
def add_together(a, b):
return a + b
Если мы хотим удержать a
константа, мы можем вручную создать ту же функцию с константой, например, 5
:
def add_together(b):
return 5 + b
В программировании нам обычно нужен программный способ установки нашей константы и генерации нашей частичной функции. В Python мы можем сделать это с помощью замыкания:
def set_a_on_add_together(a): # the outer function takes a parameter, a
def add_a_to(b): # outer function def's new function w/ parameter, 5
return a + b # the new function returns a, held constant, plus b
return add_a_to # outer function returns the newly created function
и будет использоваться так:
add_to_five = set_a_on_add_together(5)
add_to_five(4)
вернется 9
, а также
add_to_five(10)
вернется 15
.