Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Subclasses and pattern matching
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2003-09-19 (15:22)
From: katre <katre@h...>
Subject: Re: [Caml-list] Subclasses and pattern matching
Richard Jones wrote:
> Possibly I'm being dumb here, but wouldn't it be better to use
> a union type, eg:
> type num = Int of int | Float of float

Yes, except for two facts:

a) Each different type has different data available (some are ints, some
strings, some more complex)
b) Each different type has a lot of data.  I don't really want to
specify a 10-member tuple for each constructor :)
c) Where the data is used, I want to match two or three different types,
and then call a default method with anything left over.  With a union, I
have to deal with every possible type, or do nothing with the data.

To clarify, using your type above, I can't do

match n with
    Int(i) -> print_int i
    | _ -> print_int some_data_from_n

Remember, all of my structures have many more than 1 piece of data.  A
class inheritance really is the best way to model the data structure, I
just want to be able to pattern match on it.


To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: