我是Haskell的新手并且遇到了这个问题。我正在使用
gio = \x -> x == reverse (x)
返回错误ERROR C:\Users\Gbaramidze\Desktop\gio.hs:18 - Unresolved top-level overloading
无法找出原因。希望你能帮忙。
P.S: 我按照你的指示提供了一个签名,但它没有工作。我收到了一个错误:
- Cannot justify constraints in explicitly typed binding
*** Expression : gio
*** Type : [a] -> Bool
*** Given context : ()
*** Constraints : Eq a
我使用Hugs,因为这是我们在大学中使用的工具。我使用的代码在上面,我将它放在.hs文件中并使用Hugs打开它。
答案 0 :(得分:3)
因为您使用的是(==)
,所以必须将该函数限制为仅适用于支持此操作的类型。正确的类型签名如下所示:
gio :: Eq a => [a] -> Bool
gio = \x -> x == reverse x