[r6rs-discuss] [Scheme-reports] [scheme-reports] Scheme pattern matching & R*RS
Andre van Tonder
andre at het.brown.edu
Fri Jan 21 19:42:41 EST 2011
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.
More information about the r6rs-discuss