Lazy evaluation for Python.
Project description
Lazy evaluation for Python.
Usage
To use yzal:
from yzal import lazy, strict @lazy def add(x, y): sum = x + y print('Adding {:d} + {:d} = {:d}', x, y, sum)
The following only creates a Thunk, it does not run the lazy function above.
>>> sum = add(3, 7)
There are two ways to get the result of the lazy evaluation. The first is simply to perform an operation that requires a strict value.
>>> 5 + sum Adding 3 + 7 = 10 15
The second way is to explicitly request a strict value.
>>> sum = add(3, 7) >>> strict(sum) Adding 3 + 7 = 10 10
Note
If we did not recreate the Thunk the side effect string would not have displayed again. This is because Thunk’s will only evaluate the lazy expression they contain once. Further requests for a strict value will return a cached result. It is important to remember this when the lazy function is not pure.
Requirements
- Python 3.4 or greater
- lazy_object_proxy
Thanks
We wish to thank the following projects, without which yzal would have been much harder to write:
- lazy_object_proxy - A fast and thorough lazy object proxy.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size yzal-0.0.2-py3-none-any.whl (2.8 kB) | File type Wheel | Python version py3 | Upload date | Hashes View hashes |
Filename, size yzal-0.0.2.tar.gz (3.0 kB) | File type Source | Python version None | Upload date | Hashes View hashes |