【发布时间】:2012-07-21 09:30:45
【问题描述】:
我正在努力通过Learn You a Haskell for Great Good,我已经到达section 8.4, "Derived Instances"。在本节中,有以下数据类型声明:
data Person = Person { firstName :: String
, lastName :: String
, age :: Int
} deriving (Eq)
尝试中
*Main> mikeD == Person {firstName = "Michael", lastname = "Diamond", age = 43}
我收到以下错误:
<interactive>:55:41:
`lastname' is not a (visible) field of constructor `Person'
通过将lastname 更正为lastName,我删除了错误。
问题:
在错误消息中(visible) 一词暗示我必须有可能将字段声明为隐藏/不可见。这是正确的还是不正确的?如果是,我如何将构造函数中的字段声明为隐藏,以及需要声明隐藏字段的一般场景是什么?如果您能通过给出一个简单的使用示例来解释这一点,将不胜感激。
注意:我在 LYAH 中找不到任何关于隐藏或不可见字段的参考/详细信息。
【问题讨论】:
标签: haskell types derived-types derived-instances