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