According to my understanding, partial functions are functions that we get by passing fewer parameters to a function than expected. For example, if this were directly valid in Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
In the snippet above, new_function
is a partial function. However, according to the Haskell Wiki, the definition of partial function is
A partial function is a function that is not defined for all possible arguments of the specified type.
so, my question is: what exactly is meant by "partial function"?
You are here confusing two concepts. A partially applied function [haskell-wiki] with a partial function [haskell-wiki].
A partially applied function is:
Partial application in Haskell involves passing less than the full number of arguments to a function that takes multiple arguments.
whereas a partial function indeed is a non-total function:
A partial function is a function that is not defined for all possible arguments of the specified type.