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

* tar@sevak.isi.edu (Thomas A. Russ)
| I'll refrain from pointing out that I was trying to come up with a very
| high-level overview for a language new-comer, rather than a detailed
| technical spec.

  well, I think high-level overviews that contradict detailed technical
  specs are destructive and that if we cannot express ourselves save by
  contradicting the specifics, we do not have a consistent language to
  begin with, and high-level overviews should not be attempted.  the task
  must be to find the appropriate way to express language characteristics
  that hold true no matter how deep we dig into the specifics.

  a new-comer needs to understand that there is no syntactic concept of a
  "statement" in the Algol sense in Lisp.  while it is true that Lisp forms
  return values, I think the important difference between Algol and Lisp in
  this regard is that there is no restriction on where a form can be used,
  syntactically.  (there are a number of semantic restrictions, of course.)
  this lack of restriction leads to the _conclusion_ that Lisp has been
  designed with a concern that forms should return useful values, even if
  they are intended for side effects, and that not using such values is not
  an error -- the form will still be fully evaluated.

  the important distinction is between languages that drive an artificial
  wedge between "statements" and "expressions" and languages that do not:
  the Algol family (including Scheme) does feature this artificial wedge,
  while the Lisp family (excluding Scheme) does not.

#:Erik