On Sep 15, 2009, at 6:45 AM, Andre van Tonder wrote:

> On Mon, 14 Sep 2009, Brian Mastenbrook wrote:
>
>> (define b 1)
>> (begin
>>  (define a b)
>>  (define b 2)) -> error, attempt to use `b' before its definition
>
> This is certainly incorrect behavior in R5RS.


The question is: is this behavior sensible? Was the conflation of  
binding and mutation at the top-level into one syntax ever a good idea  
in the first place - especially when the SAME syntax is used only for  
binding elsewhere?

Would anyone who is not doing "screwy" things with macros ever notice  
the difference? How often do you type (begin ...) at the REPL anyway?

Wouldn't it be better if `define' *always* behaved as binding, and  
never as mutation?

--
Brian Mastenbrook
[email protected]
http://brian.mastenbrook.net/


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

Reply via email to