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

Re: [Scheme-reports] REPL

Andy Wingo quotavit:

>     In retrospect, we can also see that some aspects of the initial
>     design of Scheme were flat-out wrong ... [We] believe that Carl
>     Hewitt was right: we would have been better off to have introduced
>     cells as a separate, primitive kind of object, rather than allowing
>     assignment to any and every λ-bound variable.

I've made that point too, but it's also been pointed out (I forget
by whom) that mutable variables, unlike cells, can't escape their
context, and that this is often a Good Thing: the mutability stays
chained to specific procedures.  Even if you are not willing to pay
the implementation price for direct support of mutable variables, and
always transform them into cells anyway, certain kinds of source-level
correctness are easier to establish when you know which parts of the
program are pure.

John Cowan  cowan@x  http://ccil.org/~cowan
Any sufficiently-complicated C or Fortran program contains an ad-hoc,
informally-specified bug-ridden slow implementation of half of Common Lisp.
        --Greenspun's Tenth Rule of Programming (rules 1-9 are unknown)

Scheme-reports mailing list