При попытке расширить один из примеров из Lazy.jl я столкнулся с проблемой, когда оценка не ленива.
README
использует этот пример:
> esquares = @>> Lazy.range() map(x->x^2) filter(iseven);
> esquares[99]
39204
Я попытался сделать его динамичным, позволив ему указать фильтр в качестве аргумента, но в итоге он вычисляет бесконечный список:
> squares(filt) = @lazy @>> Lazy.range() map(x->x^2) filter(filt);
> squares(iseven)
(4 16 36 64 100 144 196 256 324 400 484 576 676 ... # this keeps printing until interrupting...)
Я также попытался:
> @lazy squares(iseven)
(4 16 36 64 100 144 196 256 324 400 484 576 676 ... # this also immediately returns the infinite list