[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Date: Wed, 2 Apr 86 13:20:44 EST
From: Jonathan A Rees <JAR@MC.LCS.MIT.EDU>
Date: Wed, 2 Apr 1986 12:57 EST
From: CPH%OZ.AI.MIT.EDU at XX.LCS.MIT.EDU
I don't like the idea of extending BEGIN to allow definitions. ALGOL
needed that because it didn't have LET; we don't have that excuse.
Then perhaps BEGIN should be caled something else... maybe SEQUENCE or
SEQUENTIALLY... I thought it got its name from Algol 60 and therefore
should be as much like Algol 60's begin blocks as possible... rememeber
that BEGIN in Algol 60 is primarily a binding construct, not a
sequencing construct so I thought there was a mismatch of name and
functionality here, one or the other should change... don't anyone
messages that I send on April 1 seriously. This issue has been beaten
to death and it was (& is) in poor taste for me to inflame old wounds
I'm going to leave BEGIN as it is. Rather than put SEQUENCE in an
appendix, I and some others at MIT prefer that it be left in the main
part of the report as a non-essential special form, and we want to flush
the request that it "not be used in new code". (Today is April 2.) I
hope this doesn't bother anyone too strongly.
Apparently there's no consensus on any change to local DEFINE, so I'm
going to leave it as it is the the RRRS: all the definitions must appear
at the beginning; local defines are sugar for LETREC; LETREC binds
everything at the top, and does the right-hand side computations and the
assignments in an indeterminate order; LETREC permits arbitrary
expressions on the right-hand sides; a reference to any of the variables
during the evaluation of any of the right-hand sides is an error.
I didn't realize this idea of putting definitions in BEGIN was a serious
suggestion. I strongly oppose having either BEGIN or LET do this. The reason
is that it makes it impossible to write code which wants to use these
primitives for other things and doesn't have additional implications that
may be unwanted or may have implications in macros or program-writing programs
that some programmer didn't count on.
As a counter-proposal, how about a LOCALLY special form.
ie, (LOCALLY <definition>* <form>*)
- From: Guy Steele <gls@THINK-AQUINAS.ARPA>
- From: Jonathan A Rees <JAR@MC.LCS.MIT.EDU>