On Tue, Jun 15, 2004 at 11:30:24AM +0200, Wolfgang Jeltsch wrote:
Am Dienstag, 15. Juni 2004 04:05 schrieb John Meacham:
[...]
now classes are a bit trickier, the main thing is that classes in haskell are not like classes in other languages. A class in haskell is nothing more than a construct allowing you to reuse the same syntax on different types. (to hopefully do similar things)
Classes are not only for reusing the same syntax but also for polymorphism. For example, the Num class doesn't exist solely for the purpose that I can use the + operator with different types. It's also for the purpose that one can, for example, define a function which sums up the elements of a list where the element type isn't restricted to one specific numeric type.
yes, and that summing function is a piece of reusable syntax. Whether something is a class member or built on class members is nicely abstracted away in haskell. (at least for those not creating new instances). Yeah, polymorphism is the right term, but not always the best one when trying to explain basic haskell to my impertive minded friends. I find trying to draw analogies between haskell classes and constructs in other languages to be problematic as people then try to apply knowledge from other fields incorrectly to haskell unless you give a full explanation of haskell classes anyway.. but YMMV. John -- John Meacham - ⑆repetae.net⑆john⑈