This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Bruce Stephens <b.stephens@isode.com> writes: > Mikael Djurfeldt <mdj@nada.kth.se> writes: > > > So, ideally, I think RnRS should change [to be case-sensitive], not > > Guile. > > Yes, I'd have thought so. There are various reasons it does not. One being the pedagogical nature of scheme, another being the robustness of whole write/read cycle, and the last historical. For the first reason, scheme as a teaching language, there is a feeling that this complicates the language beyond what is really important for a student to pick up from it. The second, the read/write cycle, is that case insensitivity preserves the intergrity of the data, makes it less error prone. If for some reason it has to be typed into an all caps terminal, or transmitted thru some lame mechanism that nukes caps or whatever, you data is still useable. The last one is because other lisp dialects have often been case insensitive. I'm not really ready to undertake a full defense of these reasons, but considering the overall experience, talent, and gurosity of the R?RS authors, I think we should understand that there may indeed be valid reasons to the decision to be case insensitive. This is not to say that guile should abide by the desires of the R?RS authors at all times. > > But then, in practise, not following RnRS cause trouble, > > Why? I haven't been following this, but does guile's current > case-sensitivity really prove a problem? Surely RnRS is out of step > here, not guile? If you use R?RS code that assume case insensitivity yes it does become a problem (tho you can indeed flip a switch in guile). I think that if we're going to move away from a case insensitive reader, we need to have a much better abstraction for the reader than we presently do. As Jim pointed out, a global flag is hardly an optimal mechanism. Per Bothner had some nice reccomendations, which I think we should investigate further. I also think that maybe we should take a look at the reader in Lisp (tho it's a tad on the complex side for my scheme tastes) in particular the way that ACL5.0 handles the issue of case sensitivity. It is a free (beer) distribution of common lisp for linux that in it's most recent release breaks with the case insensitive tradition. It has a nice mechanism to deal with issues of using code from both traditions, and perhaps it could show us something about how to get the best of both worlds.