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"?
partial
esegue un'applicazione parziale , mentre Haskell lo fa automaticamente. La voce wiki si riferisce a funzioni parziali , che è un termine della matematica.
add 3 5
non è un'applicazione a singola funzione. Questo vale add
per 3 per ottenere una nuova funzione, che viene quindi applicata a 5.
partial
metodo è una dichiarazione diretta di un metodo privato facoltativamente implementato altrove nella base di codice del progetto.
new_function = functools.partial(add, 1)