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?