On 8/29/2013 5:48 PM, fp2...@gmail.com wrote:
Here is the generalisable version:
def comp(*func):
def anon(x):
res=x
for f in func:
res=f(res)
return res
return anon
With a bit more work, one can set the __name__ and __qualname__ attributes.
import math as m
def comp(*func, name=''):
def anon(x):
res=x
for f in func:
res=f(res)
return res
if name:
anon.__name__ = name
q = anon.__qualname__.rsplit('.', maxsplit=1)
q[1] = name
anon.__qualname__ = '.'.join(q)
return anon
esincos = comp(m.exp, m.sin, m.cos, name='esincos')
print(esincos)
#
<function comp.<locals>.esincos at 0x00000000033107B8>
--
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list