Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!news.mathworks.com!news.kei.com!nntp.coast.net!col.hp.com!news.dtc.hp.com!hplntx!hplntx.hpl.hp.com!gjr
From: gjr@hplgr2.hpl.hp.com (Guillermo (Bill) J. Rozas)
Subject: Re: R5RS?
Sender: news@hpl.hp.com (HPLabs Usenet Login)
Message-ID: <GJR.96Mar14105830@hplgr2.hpl.hp.com>
In-Reply-To: "Stefan Monnier"'s message of 14 Mar 1996 11:26:19 GMT
Date: Thu, 14 Mar 1996 18:58:30 GMT
Reply-To: gjr@hpl.hp.com
References: <4gc83r$617@news.simplex.nl> <BLUME.96Mar4103705@zayin.cs.princeton.edu>
	<ZIGGY.96Mar4223957@biere.ai.mit. <ZIGGY.96Mar13171315@biere.ai.mit.edu>
	<4i8vor$dap@info.epfl.ch>
Nntp-Posting-Host: hplgr2.hpl.hp.com
Organization: Hewlett-Packard Laboratories, Palo Alto, CA
Lines: 53

In article <4i8vor$dap@info.epfl.ch> "Stefan Monnier" <stefan.monnier@lia.di.epfl.ch> writes:

|   In article <ZIGGY.96Mar13171315@biere.ai.mit.edu>,
|   Michael R. Blair <ziggy@biere.ai.mit.edu> wrote:
|
|   I believe that Matthias' point is that when you want to redefine a
|   function or a macro, you know this is a run-time redefinition, so
|   you might just as well use a special command, rather than "define"
|   or "set!". He'd rather have a scheme core that doesn't allow
|   redefinitions.

The problem with that is that your file/buffer, etc. already contains

(define (foo ...)
   ...)

and you are asking that for "zapping" a re-definition into my running
session I effectively rewrite it as, say

(re-define (foo ...)
   ...)

which is rather silly.


Now, you might say that the editor, as part of its "zap" command can
do that re-write for me.

There are two objections to that:

1. The definition may have been written using macros or some other
pre-processing and my editor would have to track them while my Scheme
session is already doing so.

2. From the point of view of the user, it doesn't much matter who is
doing what.  S/he perceives redefinition as occuring, since the
overall language system provides the functionality/behavior.

If I recall correctly, the Scheme reports were written in such a way
that an implementation with interactive REPLs of the sort that Michael
and I have a hard time doing without is possible.  It is also possible
to have implementations that are completely static and allow no
redefinition.  Michael and I would like to keep it that way.

I don't think that our way of doing things is the way that everyone
else should do them.  I think it is much like "what kind of car you
like", "what kind of pen like to use to write", etc., and it makes no
more sense for us to impose our views on anyone else than for them to
impose them on us.  We are concerned, however, when we see proposals
that would make what _we_ like difficult or impossible to integrate
with the rest of the language.  I realize that the same is true in the
other direction.  Hopefully compromises that permit both modes of
operation can be found.
