Partially evaluated functions

Scott David Daniels Scott.Daniels at Acm.Org
Sat Jul 7 23:07:26 EDT 2001

You might make this slightly more readable with:
> def curry(*args, **create_time_kwds):
>     func = args[0]
>     create_time_args = args[1:]
>     ...
def curry(func, *args, **create_time_kwds):
     create_time_args = args[:]

Depending upon how this gets used, you might be safe
not even performing the copy, so you'd get:
def curry(func, *create_time_args, **create_time_kwds):

The reason for the "depending upon, ..." has to do with whether
"list + []" must always produce a new list, or is allowed to notice
that [] is 0-length and simply returns the first list.  With a copy,
you are safe for sure.  Similar strictures should apply about your
proposed (dict1 + dict2) behavior.  We'd need to define whether
a new value _must_ be produced.

-Scott David Daniels
Scott.Daniels at Acm.Org

More information about the Python-list mailing list