我试图从IO获得了一些这样的:是否有替代`read`返回Maybe?
numberString <- getLine
print 3 + read numberString
这个工作,如果numberString
是数串好的(如“3241”),但如果它不是那么好(如“124gjh “),它抛出一个异常:
*** Exception: Prelude.read: no parse
有一个reads
函数返回一个[(a0, String)]
和没事的时候是匹配的,这将是一个[]
。有一个简单的办法,我有这样的事情:
read' :: String -> Maybe a
,这样我只是得到一个Nothing
如果事情不工作,而不只是突然停止?
['readMaybe'](https://hackage.haskell.org/package/base-4.8.2.0/docs /Text-Read.html#v:readMaybe);)...您可以随时[Hoogle](https://www.haskell.org/hoogle/?hoogle=String+-%3E+Maybe+a)查看这些(虽然[Hayoo](http://hayoo.fh-wedel.de/?query=Read+a+%3D%3E+String+-%3E+Maybe+a)在这里做的更好) – Carsten
@Carsten为什么不'readMaybe '虽然在查询的Hoogle结果中显示? –
@ChrisMartin我真的没有线索 - 看起来Hoogle不会*看到*'Text.Read',即使它在基地 – Carsten