Browse thread
[Caml-list] Matching when
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2002-08-05 (13:05) |
From: | Pierre Weis <pierre.weis@i...> |
Subject: | Re: [Caml-list] Matching when |
Hi ! > I was thinking that the following should be possible : > > match e with > | Any > | Int x when x > 0 -> > .... (* here we don't use x *) > | .... > > But the typechecker reject it because of the unbound 'x' in the "Any" > matching. > I don't know what kind of difficulty this modification require, but it would > be nice if the compiler was able to resolve such cases. I would require to analyze the set of free variables of expression parts of match clauses to restrict the checks on variables of patterns to this set of variables. In this case, the set of (typed) variables of all the patterns of an ``or'' pattern should have the same intersection with the set of free variables of the corresponding expression of the clause, and this would solve your problem in a simple and elegant way. This is simple and does not involve any modification of the semantics of the language or of the pattern matching algorithm. Regards, Pierre Weis INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/ ------------------- 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