[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] [r6rs-discuss] [scheme-reports] Scheme pattern matching & R*RS

On Fri, 21 Jan 2011, John Cowan wrote:

> Andre van Tonder scripsit:
>> Just note, FWIW, that R6RS library semantics have no such thing as
>> "overriding".  You would need to do a complicated EXCEPT import to
>> exclude the usual WG1 meanings.
> I've just filed a ticket for this: http://trac.sacrideo.us/wg/ticket/132 .

There is a good reason why there isn't any overriding in library imports in 
R6RS, and in my opinion there is a good reason why things should stay this way.

In practical applications, library import graphs may be deep, wide and 
complicated, often with many different paths to any particular leaf.  Any 
semantics for overriding has to flatten this complicated graph into a linear 
ordered sequence so that the "latest" meaning of an imported name can be chosen 
as the real one.  There are many different orders in which a graph can 
be traversed.  This can of course be done easily by a machine if a particular 
traversal order is imposed by the standard.  However, for a human to figure 
out what is happening when their program starts to do unexpected things can 
be a nightmare, especially because the number of paths to any leaf node tends 
to grow exponentially with depth.

Scheme-reports mailing list