一部の値を変更したレコード
Database.Persist.MySQLの設定を調べていて、こんな記述を発見。
defaultConnectInfo :: ConnectInfo
Default information for setting up a connection.
(中略)
Use as in the following example:connect defaultConnectInfo { connectHost = "db.example.com" }Database.Persist.MySQL
レコードってこんな使い方できたっけ?
ということで、試しにいろいろやってみた。
- Hoge.hs
data Hoge = Hoge { hoge :: Int, piyo :: String } deriving Show
で、
> :l Hoge.hs
[1 of 1] Compiling Main ( Hoge.hs, interpreted )
Ok, modules loaded: Main.
> let aa = Hoge { hoge = 9, piyo = "aaa" }
> aa
Hoge {hoge = 9, piyo = "aaa"}
> aa { hoge = 22 }
Hoge {hoge = 22, piyo = "aaa"}
> aa { piyo = "xx" }
Hoge {hoge = 9, piyo = "xx"}
> aa
Hoge {hoge = 9, piyo = "aaa"}
> aa { piyo = "xx" } { hoge = 0 }
Hoge {hoge = 0, piyo = "xx"}
> aa { piyo = "xx" } { hoge = 0 } { piyo = "uuu" }
Hoge {hoge = 0, piyo = "uuu"}
> hoge aa
9
> hoge aa { piyo = "xx" } { hoge = 0 } { piyo = "uuu" }
0へ〜。