レコード構文とアズパターン
-
付与されたタグ:
- Haskell
調べても結構使い方を書いてないな…。
data B = B { x ::String, y ::String } update_b2 bb@B{} = bb{x ="ccc"} update_b3 bb@B{x=x2} = bb{x =x2 ++ "ccc"} update_b4 bb@B{y=y2} = bb{x =y2 ++ "ccc" } main = do let b = B { x = "aaa", y = "bbb"} b2 = update_b2 b b3 = update_b3 b b4 = update_b4 b putStrLn $ x b putStrLn $ y b putStrLn $ x b2 putStrLn $ y b2 putStrLn $ x b3 putStrLn $ y b3 putStrLn $ x b4 putStrLn $ y b4
実行結果
aaa bbb ccc bbb aaaccc bbb bbbccc bbb