[
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: | -- (:) |
| From: | Luc Maranget <luc.maranget@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. > > :-) > Nicolas Cannasse > Hello, This has already been discussed. The modifications required are important and probably not worth the trouble. More precisely the guard ``when expression'' is not part of patterns but rather part of clauses. That is your example is to to be parsed as Any | Int x <-- pattern \ when x > 0 <-- guard | clause -> | ... <-- right hand side / What you are asking is ``pattern when expression'' to be a pattern. Then your example would be parsed as That is your example is to to be parsed as Any <-- pattern | | | Pattern (or pat) Int x when x > 0 <-- pattern | -> ... <-- right hand side Modifications are really important because this would make patterns and expression mutually recursive, which they are not at the moment. --Luc ------------------- 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