Secondo la mia comprensione, le funzioni parziali sono funzioni che otteniamo passando meno parametri a una funzione del previsto. Ad esempio, se questo fosse direttamente valido in Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
Nel frammento sopra, new_functionè una funzione parziale. Tuttavia, secondo Haskell Wiki , la definizione di funzione parziale è
Una funzione parziale è una funzione che non è definita per tutti i possibili argomenti del tipo specificato.
quindi, la mia domanda è: cosa si intende esattamente per "funzione parziale"?
partialesegue un'applicazione parziale , mentre Haskell lo fa automaticamente. La voce wiki si riferisce a funzioni parziali , che è un termine della matematica.
add 3 5non è un'applicazione a singola funzione. Questo vale addper 3 per ottenere una nuova funzione, che viene quindi applicata a 5.
partialmetodo è una dichiarazione diretta di un metodo privato facoltativamente implementato altrove nella base di codice del progetto.
new_function = functools.partial(add, 1)