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

DO in Scheme



A couple of times recently I have seen suggestions that DO be removed from
Scheme.  I must concur in that I find DO to be one of the cruftiest and most
opaque constructs in the language (and would hate to see it become part of any
standard).  However, it seems to me that before we can remove such constructs,
we need to agree on a macro standard so that they can be reintroduced as macros
through the Yellow Pages.  There are undoubtedly many users within our 
community who make extensive use of DO, and it seems unkind and unnecessary to
leave them high and dry.  On the topic of macros, didn't we appoint a commity
at the last Scheme meeting composed, I believe, of Chris Hanson, Jonathan Rees,
et. al. to look into the macro question and report back to us.  What ever
happened to this effort.  It actually seemed to me that they had a starting
proposal which was reasonably close to being acceptable to nearly all parties
concerned.  
At the risk of pushing my luck, I would suggest that with the death of DO we
reintroduce named-let to at least optional status.  Having used all of DO,
named-let, and the equivalent letrec forms over several years, I have found
named-let to be by far the simplest to read and therefore the most elegant.  It
is convenient to be able to specify the initial bindings of loop variables at
loop entry (an advantage of named-let over letrec) without being forced to go
to the more complex and convoluted form of DO.
 
                                        Morry Katz
-------