在lambda函数中使用reverse

时间:2016-12-15 19:05:01

标签: haskell

我是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打开它。

1 个答案:

答案 0 :(得分:3)

因为您使用的是(==),所以必须将该函数限制为仅适用于支持此操作的类型。正确的类型签名如下所示:

gio :: Eq a => [a] -> Bool
gio = \x -> x == reverse x