[
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: | 2006-03-30 (08:38) |
From: | Jonathan Roewen <jonathan.roewen@g...> |
Subject: | [Caml-list] Feature Wish: List comprehensions |
Hi, I'm having a small problem trying to tidily define an equivalent function to some Haskell code. Haskell: pThen combine p1 p2 toks = [ (combine v1 v2, toks2) | (v1,toks1) <- p1 toks, (v2, toks2) <- p2 toks1 ] (I'll also be needing to specify equivalents for pThen3 & pThen4). The first isn't too bad... let pThen combine p1 p2 = fun ts -> let l1 = p1 ts in let l2 = List.map (fun (v1,ts1) -> p2 ts1) l1 in List.concat (List.map2 (fun (v1,ts1) l2 -> List.map (fun (v2,ts2) -> combine v1 v2,ts2) l2) l1 l2) As you can see, extending this style to pThen3 & pThen4 is going to be very, very ugly (and hard to get right first time). I know it's just shorthand for map/filter, (and more complex derivatives of these), but it would be nice to have in ocaml... BTW: any suggestions on a better way to write the above function would be appreciated ;-) Kindest Regards, Jonathan Roewen