On 26-Jan-2003, John H?rnkvist <john@toastedmarshmallow.com> wrote:
On Saturday, January 25, 2003, at 04:14 AM, Andrew J Bromage wrote:
G'day all.
On Fri, Jan 24, 2003 at 06:13:29PM -0500, Norman Ramsey wrote:
In a fit of madness, I have agreed to deliver a 50-minute lecture on type classes to an audience of undergraduate students. These students will have seen some simple typing rules for F2 and will have some exposure to Hindley-Milner type inference in the context of ML.
Will they have had exposure to more "traditional" OO programming? If so, it might be useful to note the difference between Haskell type classes and C++/Java/whatever classes, namely that Haskell decouples types and the interfaces that they support. The advantage is that you can extend a type with a new interface at any point, not just when you define the type.
While Java and C++ don't support it other object oriented languages do.
Some others do, some others don't. And in fact it seems that most mainstream OOP languages don't. For example C#, Eiffel and Ada-95 don't, if I recall correctly. Sather does support it, but Sather is hardly mainstream (the language is just about dead these days). GNU C++ used to support it, with the "signature" extension, but doesn't anymore (support for that extension was dropped). Of the vaguely mainstream OOP languages, I think only the dynamically-typed ones support it. -- Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit The University of Melbourne | of excellence is a lethal habit" WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.