data Anchor = A String String
このように宣言した型のフィールドにアクセスするにはパターンマッチを利用します。早速サンプルを作って試してみます。
data Anchor = A String 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 url _) = url getLabel :: Anchor -> String getLabel (A _ label) = label
思った通りに動きました。「++」はリストの連結、「_」はワイルドカードですね。実は覚えていなかったのでこんなのあったなあと思いながら本を読み返して見つけました。
getなんちゃらという関数名はHaskellらしくないのかも知れませんけど、無理矢理作ったプログラムで良い名前が浮かばなかったのでこのままで。