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

Inconsistency in various DOs



cc: BUG-LISP at MIT-MC, BUG-LISPM at MIT-MC

    Date: 12 APR 1980 1819-EST
    From: JONL at MIT-MC (Jon L White)

    ...

    Either you missed the first part of these communications, about syntax
    of DO and DOTIMES, or you're simply confused.  The "gain" for flushing
    old-style DO is to free up the constraints on other DOers imposed
    by the syntax which treats an atomic first "argument" as an abbreviated
    variable specification, rather than a "name" for the DO.  

I don't see how this follows.  Given that other DOers such as DOTIMES
are written as macros, they are free to expand into anything they
want, their syntax is entirely up to the macro-writer.  They can
become DO-NAMEDs or PROGs or anything you want, not just DOs. (I guess
that the name DO does imply that you can RETURN from them.) So it is
not necessary to flush old-style DO to free up anyone's constraints.
							      
							      That is,
    DOTIMES and other yet-to-be-invented DOers are constrained by popular
    opinion to interpret an atomic first arg as a "name", rather than leaving 
    that for some other operation like DOTIMES-NAMED -- that was the only 
    practical point mentioned in all the mail to my inquiry about the syntax
    (DOTIMES <symbol> ...).

First off, I don't sense the popular opinion that you speak of,
specially since the ONLY special form that has this syntax currently
is PROG!

Secondly, you are incorrect in stating that the named mumble argument
was the only "practical point" mentioned.  (Perhaps we differ on the
definition of "practical".)  The best argument to my mind was the
complete lack of generality of your suggestion.  To remind you:

  (DOTIMES X ...)		;Does the thing X times BUT

  (DOTIMES (1+ X) ...)		;Doesn't do the thing X+1 times


I think that (DOTIMES <atom> ...) should be an ERROR! (How novel!)  I
also think that (PROG <atom> ...) should be an error, but I am too
late for that one!  Why do we think that we are obliged to define
a meaning for every special case there is?

WOW!!! what an amazing amount of mail!!  For the record I vote for
DLW's suggestion of a lexical CATCH.  (Now we can flame about what to
call it!)