The draft R7RS says for equal? "Even if its arguments are circular data 
structures, equal? must always terminate."  That sounds nice and general, 
except what that MEANS is that every test using "equal?" must be ten times 
slower and chew up memory.  Same for write.  And you can't depend on this in 
portable code, because "equal?" never meant that before.

Circular data structures are very rare; requiring such massive costs on common 
operations, for uncommon circumstances, is nuts.

Now when you *need* termination, that is indeed useful.  But then it should 
have a separate name, say "equal-circ?"  Then we could, in our spec, specify 
that "equal-circ?" would be used, and implementations could separately 
implement "equal-circ?" without making "equal?" ridiculously inefficient.

It probably won't do any good, but I'm thinking about posting this to the R7RS 
group (as well as an appeal to restored the c....r functions which are some of 
the few actually portable functions and have been with us for decades).

--- David A. Wheeler

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to