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

Down with RESTART



Alan,

When I said that re-initializing the variables is almost never the right
thing to do, I had several things in mind:

1. In an iterative situation, where the variables are counting or
accumulating something and the problem occurs after several iterations,
you usually want to restart where you left off (if anywhwere), and not
re-init such variables.

2. In the case of optionals, you probably have no way to tell whether
the value came from the user or was computed.  Even if it was computed,
you probably don't want to zap it unless it is a function of whatever it
was that you changed to correct the error.  I would claim that having
things in the arglist depend on one another in this way is relatively
rare compared to constant inits or inits taken from some external
special variable.

3. It bothers me to have RESTART cut in between elements in an arglist.

Anyway, you have made your point: RESTART is confusing and we are better
off without it.  There is no point in putting in a special
RESTARTABLE-BLOCK form -- if I can't take advantage of the implicit
block in a defun, I may as well write a PROG and GO as a
RESTARTABLE-BLOCK and a RESTART.  I can make my code perspicuous by
using RESTART as the tag name, something we have all been doing for
years anyway.

-- Scott