我喜欢F#中的Int32.TryParse函数,想在Haskell中编写自己的类似函数:
import qualified Control.Exception as CE
handler:: CE.ErrorCall -> IO (Bool,Int)
handler e = return (False,0)
s2Int :: String->Int
s2Int s = read s
tryParse :: String -> IO (Bool,Int)
tryParse s = CE.catch (s2Int s `seq` return (True,read s)) handler
仅用七行解析Int类型的方式?有没有更短的方法?
谢谢...
(Bool, Int)
真的没有意义。F# 中这样做的唯一原因是它是对一个接受可变int
并返回bool
的 C# 函数的语法糖。 - Tarmil