Learn You a Haskell for Great Goodを進めていて、セクション 8.4「派生インスタンス」まで到達しました。このセクションには、次のデータ型宣言があります。
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 の隠しフィールドまたは非表示フィールドに関する参照や詳細は見つかりませんでした。