Skip to main content

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

Thanks

We wish to thank the following projects, without which yzal would have been much harder to write:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for yzal, version 0.0.2
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

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page