Re: class precedence list

From: Ken Anderson <kanderso_at_bbn.com>
Date: Tue, 12 Oct 1999 10:44:02 -0400

In common lisp, the class-precedence-list is F D B E C A.
Maybe this is a bug in STK.

At 04:12 PM 10/12/1999 +0200, Anthony Beurive' wrote:
>
>I got a problem with class precedence. I will simplify the problem
>for clarity. Consider the following class definitions:
>
>(define-class <A> () ())
>(define-class <B> (<A>) ())
>(define-class <C> (<A>) ())
>(define-class <D> (<B>) ())
>(define-class <E> (<C>) ())
>(define-class <F> (<D> <E>) ())
>
>The class precedence list of <F> resulting of a call to
>class-precedence-list gives the following: (<F> <D> <E> <B> <A> <C>).
>I believe this brakes the first rule of class precedence given in the
>reference manual p. 87: "Each class is more specific than its
>superclasses." Obviously, <C> is more specific than <A>, but it
>appears later.
>
>Is it a well-known problem of class precedence in STklos or CLOS? I
>must admit I'm new to this kind of problems.
>
>I can see two solutions that don't really satisfy me. The first one
>is <B> not to inherit from <A>. The second is to explicitly specify
>the class precedence list of <F>: (define-class <F> (<D> <E> <B> <C>)
>()) or (define-class <F> (<D> <E> <B> <C> <A>) ()). Do other
>solutions exist? Maybe I should modify the class-precedence-list
>procedure?
>
> ,
>Anthony BEURIVE
>LaBRI (Univ. Bordeaux I)
>351, cours de la Liberation
>33405 Talence, FRANCE
>mailto:beurive_at_labri.u-bordeaux.fr
>
>
>
Received on Tue Oct 12 1999 - 16:45:04 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 21 2014 - 19:38:59 CEST