Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
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.

katre

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners