Python 2, 60 bytes
c=lambda f,n,l=[]:lambda a:n-1and c(f,n-1,l+[a])or f(*l+[a]) The footer is a tester which uses STDIN in the following way per line:
- The function itself
- The number of the function's arguments, ≥2
- A list of the arguments (
[a,b,...])
Note that, while a list of the arguments is given as input in the tester, in reality, the curried equivalent gets prepended to the list and the list is reduced by function call.
A similar 55-byte version has been kindly provided by ovs:
c=lambda f,n,*l:lambda a:n-1and c(f,n-1,*l,a)or f(*l,a)