"Haris Bogdanovic" <fbogdanovic / xnet.hr> writes: > In Ruby everything is an object. That's my favourite Ruby's feature. And you > showed that by just making one module you can have Lisp like functional > programming. So I'll stick with Ruby. In Lisp too, everything is an object. But there are several kinds of objects, and you can create your own kinds too (you can write new meta-classes in CLOS). C/USER[15]> (defclass automobile () ()) #1=#<STANDARD-CLASS AUTOMOBILE> C/USER[16]> (defvar *car* (make-instance 'automobile)) *CAR* C/USER[17]> (class-of *car*) #1=#<STANDARD-CLASS AUTOMOBILE> C/USER[18]> (class-of 1) #1=#<BUILT-IN-CLASS INTEGER> C/USER[19]> (class-of "string") #1=#<BUILT-IN-CLASS STRING> C/USER[20]> (defstruct wheel) WHEEL C/USER[21]> (defclass automobile () ((wheels :accessor wheels :initform (list (make-wheel) (make-wheel) (make-wheel) (make-wheel))))) WARNING: DEFCLASS: Class AUTOMOBILE (or one of its ancestors) is being redefined, instances are obsolete #1=#<STANDARD-CLASS AUTOMOBILE :VERSION 1> C/USER[22]> (wheels *car*) (#S(WHEEL) #S(WHEEL) #S(WHEEL) #S(WHEEL)) C/USER[23]> (class-of (wheels *car*)) #1=#<BUILT-IN-CLASS CONS> C/USER[24]> (class-of (first (wheels *car*))) #1=#<STRUCTURE-CLASS WHEEL> C/USER[25]> -- __Pascal Bourguignon__