I\'m studying Common Lisp (with Lispworks) and I\'m trying to get into class system right now. There is a class called standard-object and it is defined as
CLOS is an object system, where CLOS concepts itself are first-class objects. Classes themselves are instances - of a meta class. There is some circularity involved.
There is an instance standard-object
. It's an instance of standard-class
. It is a class itself. All standard CLOS objects will have it as a superclass. There are other types of objects, for example structures. So standard-object
is there as a superclass for all typical CLOS objects.
standard-class
is in instance of itself. It is the class of all class objects. Since standard-object
is also a class, the instance for the class standard-object
is an instance of the class standard-class
. Since all standard classes are also CLOS objects, standard-class
inherits from standard-object
.
CL-USER 22 > (class-of (find-class 'standard-object))
#
The class of the standard-object
class object is standard-class
.
CL-USER 23 > (class-of (find-class 'standard-class))
#
The class of the standard-class
class object is standard-class
.
CL-USER 24 > (find-class 'standard-object)
#
The class standard-object
is itself an object and a class. It is a superclass of all CLOS objects.
CL-USER 25 > (find-class 'standard-class)
#
The class standard-class
is itself an object and a class. It is a superclass of all CLOS classes.