Am 11.08.16 um 06:02 schrieb Steven D'Aprano:
Here's a neat little decorator which decorates a function with a special
callable attribute "v" which operates somewhat like Julia's dot syntax:
def vectorize(func):
def v(seq, **kw):
return [func(x, **kw) for x in seq]
func.v = v
return func
py> @vectorize
... def add2(x):
... return x+2
...
py> add2.v([100, 200, 300, 400])
[102, 202, 302, 402]
Neat. I suspect, that in addition to the higher-level syntax, it also
improves the speed in Julia, because the loop is implicit and it
compiles to native code using LLVM. Numpy's ufunc comes to mind - there
is also a vectorizer for Python functions
http://docs.scipy.org/doc/numpy/reference/generated/numpy.frompyfunc.html#numpy.frompyfunc
Christian
--
https://mail.python.org/mailman/listinfo/python-list