On 5/4/11 9:24 AM, Hadley Wickham wrote:
Are you familiar with "Concepts, Techniques, and Models of Computer
Programming" by van Roy and Haridi?  That's what really helped me to
understand the strengths and weaknesses of the various styles of
programming.

Thanks, I wasn't.  Yes, interesting similar distinction between functional
and "type" decomposition.  An important associated aspect for us is the
distinction between reference objects and "ordinary" R objects, not AFAICS
conveyed by their more abstract treatment.

Another discussion I found useful was in SICP:
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-17.html#%_sec_2.4.3

I really like the metaphor of method dispatch as a table with types in
the columns and operations in the rows - then you can think of generic
functions oo as being row-based, and class based oo as column-based.

Except that functional method dispatch with multiple dispatch is dispatched on a K-tple of classes if the generic function has K arguments in its signature.

This is not a trivial distinction because it means that a method can depend on more than one class definition, so it's not just a matter of distributing the same information in different ways, but a fundamentally more complicated structure for functional OOP (for better and/or for worse).

John


Hadley


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to