Subject: Re: (no subject)
From: Erik Naggum <>
Date: 1999/03/13
Newsgroups: comp.lang.lisp
Message-ID: <>

* (Rob Warnock)
| I'd be interested to hear what in Scheme causes you to toss it so
| cavalierly into the non-expression-language camp.

  the stuff you just mentioned about the value of side-effecting forms, and
  SET!, in particular.  saying that it returns a value is like saying that
  an unbound slot in a class instance has a value.  clearly, these forms
  are not intended to be used for their value, and the language is quite
  explicit in that respect.  had the language defined SET! to return the
  new value of the object that got it, and DEFINE to return either the
  symbol or the object, I would have had a much weaker case.  as it stands,
  however, Scheme does proper homage to the Algol tradition, to which it
  was dedicated, at least as of R4Rs.  (I personally think it's a serious
  mistake to try to marry Algol to Lisp, and Scheme is the bastard that
  came out of it, but this is not something I thought before I studied
  Scheme, it's a conclusion after watching the horrible messes people who
  like Scheme willingly get themselves into.)

  BTW, if Scheme had had a _value_ that could be compared with the result
  of SET!, things would also look very different.