And a (not very robust) version which works with keyword arguments too: def threaded(f): from functools import wraps def wrapper(*args, **kwds): n = max(map(len, args) + map(len, kwds.values()) + [0]) if n == 0: return [] new_args = zip(*args) if len(args)>0 else [()]*n items = kwds.items() new_kwds = [ dict((key, value[i]) for key,value in items) for i in range(n)] return [f(*new_args[i], **new_kwds[i]) for i in range(n)] return wrapper
sage: f = a*x^2+b sage: tf = threaded(f) sage: tf(a=v, x=w, b=z) [43, 80, 117] sage: tf(a=w, x=z, b=v) [145, 182, 219] --Mike --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---