On Jan 14, 11:05 pm, thebjorn <[EMAIL PROTECTED]> wrote: > I don't remember if CLOS was changed to use C3 Linearization also, but > the concept came from Dylan (http://www.webcom.com/haahr/dylan/ > linearization-oopsla96.html) and that's what is implemented in Python.
The Common Lisp ANSI standard is from 1994, and the article you cite is from 1996, which strongly suggests C3 linearization wasn't included in CLOS. The most important difference between CLOS and C3 linearization AFAIK is that the latter enforces monotonicity, while the former doesn't. Of course, it shouldn't be very difficult to implement the C3 behavior in Common Lisp using the de facto standard MetaObject Protocol. (Nb. Dylan was such a nice language... It's a pity it is practically dead right now.) > but if you're a language geek like me, you might be excited that in > some cases it is > > type(x).__dict__['y'].__get__(x, type(x)) > > which says you get the value of x.y by calling y and passing x as an > argument -- if you know CLOS you'll recognize that it's a primitive > multi-method call. (there are some other special cases too, although > not as exciting ;-) Yeah, I also feel the excitement, so probably I am a language geek too ;-). However, this is still quite far away from full fledged multimethods. (OTOH trying to get something more from these primitive multimethods by abusing __get__ looks kind of tempting ;-)) Regards, -- Richard -- http://mail.python.org/mailman/listinfo/python-list