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
