thanks! case timeout of Just str -> case reads str of [(t,_)] -> addtimeout (hPutStrLn stderr "*** TIMEOUT" >> _exit 1) _ -> return () _ -> return ()
is VERY clear! Daniel Fischer-4 wrote: > > Am Sonntag 28 Februar 2010 02:08:18 schrieb zaxis: >> 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! > > No. The "| [(t,_)] <- reads str" in > > case timeout of > Just str | [(t,_)] <- reads str -> ... > > is a "pattern guard", not a monadic bind (and where "p <- reads str" is a > monadic bind, it's in the list monad). > You can change it to > > case timeout of > Just str -> > case reads str of > [(t,_)] -> addtimeout (hPutStrLn stderr "*** TIMEOUT" >> _exit 1) > _ -> return () > _ -> return () > > but why would you? > >> >> 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---tp27726581p27732673.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