Haskell中的Inta和a 之间有区别Maybe Int吗?如果有,我该如何转换Maybe Int为Int?
是的,它们有不同的类型:Maybe Int可能是Nothing或者Just Int,Int总是在哪里Int.
也许是定义Data.Maybe为
data Maybe a = Just a | Nothing
deriving (Eq, Ord)
Run Code Online (Sandbox Code Playgroud)
如果函数可能不返回有效值,则应使用它.看看函数isJust,isNothing和fromJust(使用Hoogle,Haskell API搜索引擎).
在你的功能里面你可以例如
case maybeValue of
Just x -> ... -- use x as value
Nothing -> ... -- erroneous case
Run Code Online (Sandbox Code Playgroud)
或者,使用fromMaybe(也来自Data.Maybe)采用默认值和a Maybe
,如果Maybe是a 则返回默认值Nothing,否则返回实际值.