Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!mintaka!ai-lab!zurich.ai.mit.edu!jinx From: jinx@zurich.ai.mit.edu (Guillermo J. Rozas) Newsgroups: comp.lang.scheme Subject: Re: Named constants in Scheme Message-ID: Date: 23 May 91 16:21:24 GMT References: <1991May15.172635.18635@Think.COM> <1991May18.203022.9325@snitor.uucp> Sender: news@ai.mit.edu Reply-To: jinx@zurich.ai.mit.edu Organization: M.I.T. Artificial Intelligence Lab. Lines: 70 In-reply-to: oz@ursa.ccs.yorku.ca's message of 22 May 91 22:28:40 GMT In article oz@ursa.ccs.yorku.ca (Ozan Yigit) writes: Path: ai-lab!mintaka!olivea!samsung!cs.utexas.edu!news-server.csri.toronto.edu!helios.physics.utoronto.ca!ists!yunexus!newshub.ccs.yorku.ca!newshub.ccs.yorku.ca!oz From: oz@ursa.ccs.yorku.ca (Ozan Yigit) Newsgroups: comp.lang.scheme Date: 22 May 91 22:28:40 GMT References: <1991May15.172635.18635@Think.COM> <1991May18.203022.9325@snitor.uucp> Sender: news@newshub.ccs.yorku.ca (USENET News System) Organization: York U. Communications Research & Development Lines: 20 jinx@zurich.ai.mit.edu (Guillermo J. Rozas) writes: Some of us in the community, and in the reports authors group, do not like having different classes of variables. We believe that all variables are created equal, and thus all of them are inherently mutable. Are you talking about theory or practice? Why is it acceptable, for example, to have language extensions like (define-integrable blah foo) or (declare (usual-integrations)) and *not* acceptable to have something like (constant foo whatever) ?? No, you are talking about two related but different languages. MIT Scheme is not standard Scheme nor viceversa. Currently it is not even the case that correct standard Scheme programs will run on MIT Scheme (because (eq? '() #f) -> #t in MIT Scheme), and the converse is nowhere near close. Thus arguments about MIT Scheme programs do not apply. We know all variables are created equal, but it seems some variables and implementations are more equal then others. ;-) Again, the standard dialect, that perhaps no one implements, says one thing, which I believe strongly. Perhaps I should restate the goals of MIT Scheme and of the original reports. MIT Scheme is developed only to support certain CS classes and research at MIT. It has no other purpose or goal. We make it available outside because people ask for it, not because we are interested in promoting it. As such, we have never made any claims that it will adhere to standards of any sort forever, although it may do so. If there is a conflict between a standard and the requirements of the classes or the researchers, compliance with the standard will carry very little weight. RnRS Scheme was a common dialect agreed upon by various people working with dialects of Scheme so that they could read each other's code, not so that they could run it verbatim. As such, clarity in the semantics (rather than performance) were paramount. I believe this to still be the goal of the reports, and as such, efficiency-related issues are not terribly important to the authors. Nor is the intent of the reports to describe a complete implementation. The only purpose of IEEE Scheme, as far as I know, was to legitimize the choice of Scheme by some commercial ventures that were having a hard time justifying the choice of a non-standard educational language, since the reports did not carry the weight of a standards body. Most of the authors of the report grudgingly agreed to an official standard to help our friends in industry, not because we felt that it was necessary or particularly good to have. Given these constraints, I think you can understand why it is perfectly consistent to expect dialects/implementations to do whatever they please, and yet have the standard language be small and clear.