Насколько я понимаю, частичные функции - это функции, которые мы получаем, передавая в функцию меньше параметров, чем ожидалось. Например, если это было правильно в Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
В приведенном выше фрагменте, new_function
это частичная функция. Однако, согласно Haskell Wiki , определение частичной функции
Частичная функция - это функция, которая не определена для всех возможных аргументов указанного типа.
Итак, мой вопрос: что именно подразумевается под «частичной функцией»?
partial
выполняет частичное применение , тогда как Haskell делает это автоматически. Запись в вики относится к частичным функциям , что является термином из математики.
add 3 5
не является единственным приложением функции. Это сначала относится add
к 3, чтобы получить новую функцию, которая затем применяется к 5.
partial
метод является предварительным объявлением необязательно реализованного частного метода в другом месте кодовой базы проекта.
new_function = functools.partial(add, 1)