[heresy-devel] Question about the innards of Heresy

Marco Antoniotti marcoxa at cs.nyu.edu
Sat Mar 29 11:11:54 UTC 2008


On Mar 28, 2008, at 18:06 , Matt Lamari wrote:
>
> Well - the doc can be found here:  http://cl-heresy.sourceforge.net/ 
> Heresy.htm
>
> Ultimately, there is the lazy-list class.  The different sub- 
> classes exist to facilitate certain internal optimizations, e.g.  
> getting the CDR of a lazy-list that's just wrapping a lisp list.
>
> All subclasses of lazy-list are lazy-lists containing a function  
> that yields a value and a "next" function.  The extra data in each  
> subclass allows for optimizations in certain situations.
>
> lazy-list-list-based  <-- kind of self-evident
> lazy-list-under-cdrs <-- keeps a CDR count such that successive  
> CDRs against same merely up the cdr-count.  This one may be a  
> candidate for removal.
>
>
> Let me know if I can be more specific in this or another direction.

Well, I am a little confused by all the subclassing and by the  
similarly named functions.   In particular I have a doubt.  While the  
API is Lisp/Haskell and while there is welcome support for thread  
safety, how is Heresy different in concept from the iterators in CL- 
CONTAINERS or the enumerations (shameless plug) or CL-ENUMERATIONS?

In any case, could you explain a little more in detail the rationale  
for all the subclasses and the sematincs of and the need for keeping  
a separate value slot?

Cheers
--
Marco










>
>
>
>
> Marco Antoniotti wrote:
>> Hi
>>
>> I am a bit puzzled by the innards of Heresy.
>>
>> Could anybody shed a little light (and documentation :) ) on the  
>> actual role of all the different delayed classes that are there?
>>
>> Thanks
>>
>> -- 
>> Marco
>>
>> _______________________________________________
>> heresy-devel mailing list
>> heresy-devel at common-lisp.net
>> http://common-lisp.net/cgi-bin/mailman/listinfo/heresy-devel
>

--
Marco Antoniotti





More information about the heresy-devel mailing list