Re: Generics vs. Message passing: object namespaces
"Michael Walter" <[email protected]> Fri, 23 Feb 2007 22:02:30 +0100
| Newsgroups | gmane.comp.lang.lightweight |
|---|---|
| Message-ID | <[email protected]> |
On 2/23/07, Matt Knox <[email protected]> wrote: > On 2/23/07, Michael Walter <[email protected]> wrote: > > On 2/23/07, [email protected] <[email protected]> wrote: > > > > If I understand it correctly, your point is that if you need the draw > > > > method from gun, picture, blood, and duel modules, that in an > > > > object-dispatch system, you can say: > > > > > > > > gun.draw args > > > > duel.draw args > > > > ...etc. > > > > > > > > instead of > > > > (draw_gun gun args) > > > > > > > > But it seems that it should be trivial to have, in a CLOS-style > generic > > > > function system, 'draw' bound to a function that would look at the > type of > > > > its first argument and dispatch to the appropriate GF. Then you'd > have: > > > > > > > > (draw gun args) > > > > ... > > > > and the only differences would be syntax and the ease with which > > > > autocompletion could be done. > > > > > > > > Am I missing something? > > > > > > > > > No, I think that is correct, but that is not how CLOS-style generic > > > OOP works, the original subject of criticism. [...] > > > > In what way is using dynamic dispatch not how CLOS-style generic OOP > > works? I mean, this seems to be pretty much what defgeneric/defmethod > > are for. > > > > Regards, > > Michael > > > > The difference is that if you define 3 different GFs (not different methods > on a single gf, but 3 different functions) in different source files, each > with the same name, CLOS does not automatically smash them together into a > sngle, more generic function. But why don't you define 3 different methods of the same generic function? Regards, Michael