[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

begin



    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
again.

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.

Jonathan