[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Inconsistencies imposing constraints
- To: ALAN at MIT-MC
- Subject: Inconsistencies imposing constraints
- From: JONL at MIT-MC (Jon L White)
- Date: Sun, 13 Apr 80 02:24:00 GMT
- Cc: (BUG LISP) at MIT-MC, (BUG LISPM) at MIT-MC
- Original-date: 12 APR 1980 2124-EST
Date: 12 April 1980 21:11-EST
From: Alan Bawden <ALAN at MIT-MC>
Subject: Inconsistency in various DOs
Date: 12 APR 1980 1819-EST
From: JONL at MIT-MC (Jon L White)
. . . 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.
I don't think I wrote that note in such a way to give the impression
that the constraint was due inability to code up the functionality;
rather the problem is popular attitudes as to what are consistent
extensions, and abbreviations, for DO. In fact, your "narrow" viewpoint
towards DOTIMES, expressed in just this very note, is such an example.
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!
Have you forgotten how DO is generalized? with the old-style available,
a non-atomic first arg is *not* generalized the way you just did for
DOTIMES.