seeking ideas for short lecture on type classes

Fergus Henderson fjh@cs.mu.OZ.AU
Mon, 27 Jan 2003 20:32:33 +1100


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.