[Python-Dev] PEP 309

Nick Coghlan ncoghlan at iinet.net.au
Sun Feb 27 08:39:26 CET 2005

Dima Dorfman wrote:
> Nick Coghlan <ncoghlan at iinet.net.au> wrote:
> Here, b is specialized at cut time, a is passed through the slot, and
> c is passed through the implicit slots at the end. The only thing this
> can't do is a generic right-"curry"--where we don't know how many
> parameters come before the one we want to specialize. If someone wants
> to do that, they're probably better off using keyword arguments.

I think Raymond posted some decent examples using the builtins where having 
binding of the last few arguments on the right with decent performance would be 
desirable. As you yourself said - Python functions tend to have the arguments 
one is most likely to want to lock down on the right of the function signature, 
rather than on the left.

The current PEP 309 certainly supports that in the form of keyword arguments, 
but anyone interested in performance is going to revert back to the lambda solution.

The class factory approach relies on shaping the partial application of the 
arguments by specifying where the call time positional arguments are to be 
placed (with 'all at the start', 'all at the end' and 'one at the start, rest at 
the end' being the most common options).


Nick Coghlan   |   ncoghlan at email.com   |   Brisbane, Australia

More information about the Python-Dev mailing list