代数的データ型その3

data Anchor = A { aUrl   :: String,
                  aLabel :: String }

というようにフィールドラベルを付けることができます。こうするとフィールド名でデータにアクセスできるようになります。

フィールドラベルを使った方法でサンプルを書き換えてみます。

data Anchor = A { aUrl   :: String,
                  aLabel :: String }

main = do putStrLn $ "Url  : " ++ getUrl getAnchor
          putStrLn $ "Label: " ++ getLabel getAnchor

getAnchor :: Anchor
getAnchor = A "http://www.example.com" "Example"

getUrl :: Anchor -> String
getUrl (A {aUrl = u}) = u

getLabel :: Anchor -> String
getLabel (A {aLabel = l}) = l

パターンマッチよりもこちらの方が分かりやすいですね。