Curried functions
Holger Türk
htx1 at gmx.de
Fri Jun 4 17:44:17 EDT 2004
Hello,
a common pattern to write curried functions (i.e. without the
need for a special partial application syntax, like in PEP 309)
is like in this example:
def functionLock (lk):
def transform (fn):
def lockedApply (*argl, **argd):
lk.acquire ()
try:
fn (*argl, **argd)
finally:
lk.release ()
return lockedApply
return transform
PEP 318 (decorators) contains some other examples.
I wonder if someone else than me would appreciate a syntax
like this:
def functionLock (lk) (fn) (*argl, **argd):
lk.acquire ()
try:
fn (*argl, **argd)
finally:
lk.release ()
It would even enable us to write curried function definitions
like this one:
def f (*a) (x=1, **b) (*c, **d):
[...]
Current approaches about currying or partial application
can't handle the latter in a simple/transparent way.
Will it be hard to implement the feature?
Are there any reasons that this syntax/concept is a bad idea?
Greetings,
Holger
More information about the Python-list
mailing list