
On 2 October 2010 20:23, Max Bolingbroke
Do you like this feature and think it would be worth incorporating this into GHC? Or is it too specialised to be of use? If there is enough support, I'll create a ticket and see what GHC HQ make of it.
Nice work! I like it and have wanted it for a while, and I know many in the #haskell IRC channel would like it. The case is especially useful. Maybe the if is only useful sometimes. A benefit for lambda-case that I'll throw in the mix is: main = do args <- getArgs case args of [path] -> do exists <- doesFileExist filepath if exists then readFile filepath >>= putStrLn else error "file does not exist" _ -> error "usage: foo <filename>" becomes: main = do getArgs >>= case of [path] -> doesFileExist filepath >>= if then readFile filepath >>= putStrLn else error "file does not exist" _ -> error "usage: foo <filename>" There's nothing more annoying than having to introduce intermediate bindings when you're going to immediate pattern match against it immediately and never use it again. It's both annoying to have to think of a variable name that makes sense and is not in scope or will be in scope, and annoying to type it out, and it's just ugly. This is *not* a special-case, it happens all the time and it's one of the few things in the syntax I wish could be updated. I vote yes, yes, and double yes!