On Thu, 10 Sep 2009, John Cowan wrote:

> Brian Harvey scripsit:
>
>> Yes!  If I redefine a procedure (including, btw, primitives) I want the new
>> version to apply everywhere, including already-loaded code.  This is a
>> requirement for interactive debugging.
>
> Nothing prevents *your* implementation from doing that; it's just that not
> *all* implementations are required to allow it, or required to disallow it.

No, they must be required.  This has nothing to do with interactivity, even.
The issue has to do with whether procedures are first class or not.
In Scheme procedures are first class and /every compiler must respect that/.

The following program must print 1 and -1 even if it is compiled.  Not
having this behavior would be a changing a fundamental aspect of the nature of
Scheme, namely, that procedures are first class.

   (define (f x) (display (g x)))
   (define g (lambda (x) x))
   (f x)
   (set! g (lambda (x) (- x)))
   (f x)




_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to