我正在试验Haskell,我想知道为什么我无法匹配Just包含一对。我对这种语言没有多少经验,我完全迷失了方向。模式匹配只包含一对
f :: Int -> Maybe (Int, [Int])
f 100 = Nothing
f x = Just (x,[x])
g :: Int -> Maybe Int
g x
| u==Nothing = Nothing
| u==(Just (r,s)) = Just r
where
u=f x
那么这段代码有什么问题。 GHC说r
和s
不在范围内。
将范围问题放在一边,使用'=='会引入一个不需要的“Eq”约束。 – chepner