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 [email protected] 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 [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
