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] allb...@kf8nh.com > system administrator [openafs,heimdal,too many hats] allb...@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---tp27726581p27732364.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe