[
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: | 2007-03-09 (02:02) |
From: | skaller <skaller@u...> |
Subject: | proposed extenion to patterns |
Pattern matches in Ocaml now allow alternatives within a branch subject to a restriction that all alternatives supply the same set of pattern variables (and of the same type). This is useful but still quite restrictive, for example: | A (i,j) | B i with j = 1 -> i + j cannot be coded, because there's no way to introduce the variable j. However this isn't really general enough either, because it can't HIDE variables! This form looks more general: | in A (h,k) let i = h and k = k | in B s let i = s + 1 let k = i These forms are inverted let/in constructions, with all the equivalent options (and, rec, and sequence). The variables h,k in the first alternative are hidden. The implementation is roughly syntactic sugar: match x with A (h,k) -> let i = h and k = k in i,k The 'with' form is a simplification, as is the usual form. Any comments on this idea? -- John Skaller <skaller at users dot sf dot net> Felix, successor to C++: http://felix.sf.net