A Functor library for Python
Project description
pyfunctor is a Python Functor library that provides classes implementing lazy evaluation, pipeline operators and block syntax.
An example of usages is following:
>>> from functor import * >>> f = Functor(range(10)) >> c_(map)(lambda x: x * 2) ... >> c_(filter)(lambda x: x < 7) ... >> c_(sorted).key(lambda x: -x) # the pipeline operator '>>' composes functions >>> run(f) # lazy evaluation [6, 4, 2, 0]
Furthermore, Functor object will work together with the ‘with’ statement. The object is only once evaluated after the with-block is done.
>>> with Functor(range(10)) as box: ... @c_(map) ... def f(x): ... y = x % 3 ... z = x + y ... return x + y + z ... @c_(sorted, keyword='key') ... def g(x): ... return (x % 7, x % 3, x) >>> box.value [0, 14, 8, 16, 10, 18, 4, 12, 6, 20]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyfunctor-0.1.tar.gz
(4.9 kB
view hashes)