From ... From: Erik Naggum Subject: Re: How make an abstract class in CLOS? Date: 2000/05/23 Message-ID: <3168106950435552@naggum.no>#1/1 X-Deja-AN: 626456527 References: <3168070395260015@naggum.no> <87zophe81a.fsf@frown.inka.de> <8geohu$49$1@nnrp1.deja.com> mail-copies-to: never Content-Type: text/plain; charset=us-ascii X-Complaints-To: newsmaster@eunet.no X-Trace: oslo-nntp.eunet.no 959118163 3550 195.0.192.66 (23 May 2000 21:42:43 GMT) Organization: Naggum Software; vox: +47 8800 8879; fax: +47 8800 8601; http://www.naggum.no User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.6 Mime-Version: 1.0 NNTP-Posting-Date: 23 May 2000 21:42:43 GMT Newsgroups: comp.lang.lisp * Andrew Cooke | The machine I have the ANSI spec on isn't running at the moment, so | I may have the wrong names here, but perhaps you could consider | using defgeneric as the equivalent in some way of an abstract class, | and defmethod as implementing that class? (I'm not sure it's | particularly useful to do so, however.) On the contrary, this is really what we're looking for. In my view, this is the only intelligent transposition of the "abstract class" bullshit from the C++ world into areal object-oriented system, and it shows that a fairly simple concept (generic functions) needs to be reimplemented in a round-about, counter-intuitive way in an "OO" system that fails to understand that classes do not "own" methods. "Abstract classes" do not have anything to do with the _classes_. It's a misfeature of the encapsulation mechanism in C++ classes, which is itself a misfeature of its implementation specifics and its legacy from C and a misunderstanding of Simula's mechanisms. It was said back in the early 1990's data communication that the question "What is X.25?" could be asked by only ignorants and deeply sarcastic experts. Later, "What is a database?" and "What is object-orientation?" have become similar questions. I thought it was appropriate to ask "What is an abstrat class?" the same way. #:Erik -- If this is not what you expected, please alter your expectations.