
Then can i change it to : case timeout of Just str -> do [(t, _)] <- reads str addTimeout t (hPutStrLn stderr "*** TIMEOUT" >> _exit 1) return () _ -> return () Sincerely! Brandon S. Allbery KF8NH wrote:
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).
-- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
----- fac n = let { f = foldr (*) 1 [1..n] } in f -- View this message in context: http://old.nabble.com/How-to-understand-%60%7C%60-in-this-code-snippet---tp2... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.