On 04.02.2009, at 14:03, Rich Hickey wrote:

> 1) Resource management in lazy contexts
> 2) Memory consumption in recursive lazy contexts (the filter retains
> skipped range issue)
> 3) Full laziness in I/O and other side-effect contexts, and for ease
> of understanding
> 4) Performance/elegance


> 3 - I thought the demand for full laziness was greater than it
> apparently is, given the lack of feedback on these features.

I'd say the most immediate need is for I/O, including network access.  
I have a couple of other applications in mind, for example  
computational pipellines, but those will take a while to implement.  
Perhaps Clojure is too young for much demand to appar on this list.

> 4 - Right now there is a plain tradeoff of elegance for performance,
> and I'm not satisfied with that.

What is the main reason for the performance loss in new-style lazy  
sequences? Memory allocation? Creation of the closures that represent  
the state of data generation?

Would it be possible to have new-style lazy seqs plus a generator  
interface as for streams? That could take the form of a function that  
takes a generator and presents it as a fully sequence. Generator  
functions that manage their own state would serve two purposes: (1)  
an efficient alternative to recursive sequence-producing functions  
for optimizing critical pieces of code, and (2) a straightforward way  
to use code in Java or another JVM language to define a stream of data.

Konrad.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to