На моє розуміння, часткові функції - це функції, які ми отримуємо, передаючи менші параметри функції, ніж очікувалося. Наприклад, якщо це було прямо дійсним у Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
У фрагменті, наведеному вище, new_function
є часткова функція. Однак, згідно з Haskell Wiki , визначення часткової функції є
Часткова функція - це функція, яка не визначена для всіх можливих аргументів зазначеного типу.
Отже, моє запитання: що саме мається на увазі під "частковою функцією"?
partial
виконує часткове застосування , тоді як Haskell робить це автоматично. Запис у wiki стосується часткових функцій , що є терміном з математики.
add 3 5
не є єдиним функціональним додатком. Це спочатку стосується add
3, щоб отримати нову функцію, яка потім застосовується до 5.
partial
метод - це пряма заява про необов'язково реалізований приватний метод в іншому місці кодової бази проекту.
new_function = functools.partial(add, 1)