我目前正在Haskell中构建一个Twitter CLI客户端,我有一个代表DM的数据类型和一个代表推文的数据类型。但是,我得到一个多重声明错误,因为我必须使用相同的名称:
data Users = Users { screen_name :: String } deriving(Show, Generic)
data Tweet = Tweet { text :: !Text,
retweeted :: Bool,
user :: Users
} deriving (Show, Generic)
data DM = DM { text :: !Text,
sender_screen_name :: String
} deriving (Show, Generic)
有人知道这个特定问题的解决方案吗?
答案 0 :(得分:0)
根据定义here,命名成员只是用于调用数据结构中的值的函数。
因此,如果您真的想要使用它们,可以使用语言扩展来实现。您可以在文件中声明:
{-# LANGUAGE DuplicateRecordFields #-}