Skip to content

Latest commit

 

History

History
117 lines (74 loc) · 2.57 KB

README.rst

File metadata and controls

117 lines (74 loc) · 2.57 KB

yzal

Lazy evaluation for Python.

Build status Test coverage

PyPI Package latest release Supported implementations Supported versions PyPI Wheel

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

Installation

yzal is on PyPI so the best way to install it is:

$ pip install yzal

Thanks

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