Subject: Re: dynamic redefinition of classes
From: Erik Naggum <erik@naggum.no>
Date: 1998/11/07
Newsgroups: comp.lang.lisp.franz,comp.lang.lisp,comp.lang.clos
Message-ID: <3119436078012710@naggum.no>

* Gareth McCaughan <gjm11@dpmms.cam.ac.uk>
| A lot of us understand things in a way that makes essential use of
| concrete examples.  I don't mean we couldn't state the concepts in terms
| that don't require the examples; but that the easiest way for us to think
| about the concepts makes use of the examples.

  ah, but here's an important distinction.  it's pretty hard to _explain_,
  say, the concept of assignment to variables without at some point having
  =, :=, <-, SET!, or SETQ enter the explanation, and it is probably harder
  to understand the concept from an explanation without such examples, but
  what remains after you understand it is independent of the operator.  so
  you can forget the _particular_ operator, and the concept of "assignment"
  remains, to be re-instantiated with a different operator or syntax of
  your choice to no detriment to the concept.  obviously, assignment
  doesn't exist in a particular language without a particular operator, but
  if it was tied to the operator, you would have a different concept in
  another language.  that is not a useful approach.  (for completeness,
  there are a few variations on the "assignment" theme, as well.  e.g., in
  languages that "declare" objects and initialize them with the same syntax
  used for assignments, the concepts "binding" and "assignment", which are
  cleanly separated in Lisp, get conflated and turn into a major source of
  frustration and confusion in language like C++.)

  when such concepts are well understood, the mistake of thinking that
  since C's a + b + c is expressed (+ a b c) in Common Lisp, there "ought"
  to be a direct translation of a = b = c into (setq a b c), would not be
  possible.  (I'm not making this up, as Dave Barry would say -- it is an
  actual example of student confusion I had to laboriously undo.)  such a
  mistake is only possible if the _concepts_ are very unclear and there is
  little or no understanding, only examples to be compared.

  (I'm not saying Barry favors the "copy, don't understand" view of
  teaching, but as long as people do copy without requiring understanding,
  that _is_ a very likely outcome, and it won't save people time at all,
  even though they might get something non-trivial "working" sooner.)

| [1] And if you are inclined to say "So obviously you can only
|     cope with the concrete, and are incapable of abstract thought",
|     you might like to note my signature...

  no, but I _am_ inclined to question where you thought you had provided
  evidence for the "only" part.  :)

#:Erik
-- 
  The Microsoft Dating Program -- where do you want to crash tonight?