
27 Feb
2010
27 Feb
'10
11:51 a.m.
On Sat, Feb 27, 2010 at 9:29 AM, Brandon S. Allbery KF8NH
On Feb 27, 2010, at 04:07 , zaxis wrote:
xxxMain = do timeout <- getEnv "xxx_TIMEOUT" case timeout of Just str | [(t, _)] <- reads str -> do addTimeout t (hPutStrLn stderr "*** TIMEOUT" >> _exit 1) return () _ -> return () .......
What does the `|` mean in "Just str | [(t, _)] <- reads str" ? Is it a logical `or` ?
It's a guard. Same as with function definitions (in fact, function definitions of that form are converted to case expressions).
In fact it seems to be a pattern guard, which (until recently) are (were) a non-standard extension: http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#pa...