News for hackers. Stuff that matters.
Re:Clojure.core/lazy-seq makes sense by morphir on Monday June 07, 2010 @01:59PM (#1411206)
when should you use lazy opposed to traditional eager evaluation? (I understand how it works) But I don't see exactly when lazy would be the preferred evaluation. It smells a bit like premature optimization.
Re:Clojure.core/lazy-seq makes sense by neotyk on Monday June 07, 2010 @03:59PM (#1411682)
Thanks for feedback. If your seq is created by some expensive computation (i.e. primes) than it makes a lot of sense to do it lazy.
Re:Clojure.core/lazy-seq makes sense by morphir on Monday June 07, 2010 @05:57PM (#1412098)
so by expensive you mean a growth of n^2 or n^3, worse?
Re:Clojure.core/lazy-seq makes sense by neotyk on Tuesday June 08, 2010 @04:49AM (#1413339)
It depends on your application. If you don't know how many elements you'll need and creation is constant time, but lengthy, than go lazy. On the other hand if you only need couple of elements that are O(n^3) or worse, it might be suitable to do non-lazy. It really depends on you application requirements. Good thing is that if you implement it in first place non-lazy and later decide that you need it lazy, "interface" will not change.

One thing that you can not do for sure with non-lazy is to construct infinite seq. Even when you create one lazy way, you have to "loose head" so elements can get GCed.

HTH