[Haskell-cafe] Re: Comments on reading two ints off Bytestring
Brandon S. Allbery KF8NH
allbery at ece.cmu.edu
Mon Dec 24 15:03:40 EST 2007
On Dec 24, 2007, at 13:18 , Isaac Dupree wrote:
> Paulo J. Matos wrote:
>> On Dec 23, 2007 12:44 PM, Isaac Dupree <isaacdupree at charter.net>
>> wrote:
>>> parseHeader3 bs = do
>>> (x, rest) <- BS.readInt $ BS.dropWhile (not . isDigit) bs
>>> (y, _) <- BS.readInt $ BS.dropWhile (not . isDigit) rest
>>> return (x, y)
>> What happens then if the first BS.readInt return Nothing???
> when the first one returns Nothing, the whole expression becomes
> Nothing without examining the later parts of computation (as
> Chaddaï said)
One thng that's not obvious here is that pattern match failure
translates to a call to "fail", which in the definition of Monad for
Maybe becomes Nothing.
(Hm. Isaac: I thought that translation only happened for the "do"
sugar, and in the direct case you must do it yourself or Haskell
raises the "incomplete pattern match" exception?)
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH
More information about the Haskell-Cafe
mailing list