[英]Why am I getting the “Equations for … have different numbers of arguments” message?
以下函数可以编译和运行:
shares :: Maybe (Int, L.ByteString) -> Maybe Int
shares a =
case a of
Nothing -> Nothing
Just (x, y) -> Just x
但是当以以下形式重写时:
shares :: Maybe (Int, L.ByteString) -> Maybe Int
shares Nothing = Nothing
shares Just (x, y) = Just x
我收到错误
Equations for ‘shares’ have different numbers of arguments
我认为本质上是一样的。
在Haskell中,函数的参数由空格分隔。 因此,最后一个方程式具有两个参数: Just
类型(Int, L.ByteString)
a -> Maybe a
,类型(Int, L.ByteString)
(x, y)
(Int, L.ByteString)
。 由于您需要一个参数,因此应改为:
shares (Just (x, y)) = Just x
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.