Delays evaluation of a value until access to it is needed

var delayed = expensiveOperation.toLazy();
trace(delayed.toString()); // 'Lazy<>'
var expensiveResult = delayed.eval();
trace(delayed.toString()); // expensiveResult

Static methods

staticinlineany<A>(l:Lazy<A>):Bool

Returns:

true if l has already been evaluated

staticap<A, B>(fn:Lazy<A ‑> B>, a:Lazy<A>):Lazy<B>

Applies a Lazy function to a Lazy value, Lazily

staticinlineasLazy<A>(a:A):Lazy<A>

Creates a Lazy from a known value

staticflatMap<A, B>(l:Lazy<A>, fn:A ‑> Lazy<B>):Lazy<B>

staticflatten<A>(l:Lazy<Lazy<A>>):Lazy<A>

staticmap<A, B>(l:Lazy<A>, fn:A ‑> B):Lazy<B>

staticinlinemutate<A>(l:Lazy<A>, mutator:A ‑> Void):Lazy<A>

staticinlinemutate_<A>(l:Lazy<A>, whenEval:A ‑> Void):Lazy<A>

statictoArray<A>(l:Lazy<A>):Array<A>

staticinlinezip<A, B>(la:Lazy<A>, lb:Lazy<B>):Lazy<Pair<A, B>>

staticzipWith<A, B, C>(la:Lazy<A>, lb:Lazy<B>, fn:(A, B) ‑> C):Lazy<C>

Constructor

new(genValue:() ‑> A)

Variables

@:value(null)read onlyresult:Null<A> = null

read onlygenValue:() ‑> A

Methods

inlineeval():A

iterator():Iterator<A>

toString():String