私はこのようになりますいくつかのHaskellの決まり文句がありますHaskellの動的データ・タイプの変更
data Configuration
{ confA :: Integer
, confB :: Boolean
, confC :: String }
x = (\arg opt -> opt{ confA=arg })
y = (\arg opt -> opt{ confB=arg })
z = (\arg opt -> opt{ confC=arg })
を、私はの線に沿って何かを得、定型を削除したい:
setter :: (Config -> a) -> a -> Config -> Config
x = setter confA
y = setter confB
z = setter confC
しかし、私はそのようなsetter
関数をどのように構築するのか分かりません。これは(テンプレートではない)haskellでも可能ですか、ここで構文の砂糖にぶつかっていますか?もしそうなら、テンプレートのhaskellでどうすればいいですか?
これは正しいと思います。レコード構文は自動的に* getters *を作成しますが、* setters *を作成する場合はほとんど役に立ちません。 –