On 27/01/06, Brian Hulley <[EMAIL PROTECTED]> wrote: > John Meacham wrote: > > On Fri, Jan 27, 2006 at 12:28:23PM +1100, Donald Bruce Stewart wrote: > >> john: > >>> I have often wanted a shorthand syntax for testing if a value > >>> matches a given pattern. I want to implement such an extension for > >>> jhc but can't decide an appropriate syntax so I thought I'd ask the > >>> group. basically I want something like > >>> > >>> /Left (Just _)/ expands to > >>> > >>> \x -> case x of > >>> Left (Just _) -> True > >>> _ -> False > >> > >> Something like pattern guards? > >> > >> f x | Just _ <- x = putStrLn "something" > > > > hmm.. how about > > > > (| Left (Just _) |) > > > > since | cannot be used as a section so it can be unambigously lexed > > as a different symbol. I think I like it. any other ideas? > > > > John > > (@ Left (Just _) @) would fit in with the use of @ in as-patterns > Also, the as-pattern syntax could be stolen for expressions so that [EMAIL > PROTECTED] > would evaluate to True or False when this syntactic form appears in an > expression instead of a pattern ie to give the following equivalence: > > (@ pat @) exp === exp @ pat > > Regards, Brian. > Or if we're going to allow @ as an infix operator, we could use (@ pat), reminiscent of section notation. (exp @) of course would make no sense, seeing as there's no representation for patterns as values.
- Cale _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe