gpt4 book ai didi

使用推断类型的 Haskell 类型错误

转载 作者:行者123 更新时间:2023-12-02 02:50:50 25 4
gpt4 key购买 nike

我创建了一个数据类型来保存基本的用户信息并将其加载到 ghci 中。然后我使用 ghci 来查看新的数据类型类型签名。我将类型签名从 ghci 复制到源文件中并尝试重新加载文件。 Ghci 抛出了一个错误。

代码和错误如下。

我的问题是,为什么这会引发错误。我使用了 ghci 推断的类型。

User :: Int -> String -> String -> String -> String -> User
data User = User { userID :: Int,
login :: String,
password :: String,
username :: String,
email :: String
} deriving (Show)

Prelude> :r User [1 of 1] Compiling User ( User.hs, interpreted )

User.hs:3:0: Invalid type signature Failed, modules loaded: none.

最佳答案

您可以声明值的类型(例如函数),但不能使用值的类型声明语法来声明数据类型或数据构造函数的类型。实际上,您在定义数据类型和数据构造函数时已经声明了它们的完整类型,因此不需要额外的类型声明。因此,只需省略该行 User :: ... ;该行是一个语法错误,因为它 User带有大写 U(构造函数)并且只有小写名称(值)可以具有归属类型。

关于使用推断类型的 Haskell 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2041988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com