非常に大きなデフォルトレコードの1つのフィールドを更新する必要があります。Haskellでレコード内の単一フィールドを更新する@
デフォルトが変更される可能性があるため、レコード全体を手動で再構築する必要はありません。
は今、私はこれを行うには、次のように遭遇してきたが、私はそれがどのように動作するかわからない:
unaggregate :: MyResult -> MyResult
unaggregate [email protected]{..} = calc{ the_defaults = the_override
`mappend` the_defaults }
where
the_override = create ("aggregation" := False)
私はグーグルで「Haskellの@演算子」を探して試してみましたが、それはすぐに戻りません有用な情報。
は、私がどこか[email protected]{..}
見変数のパターンマッチングを行いますが、私はまた私が見上げている
... calc
はMyResult
レコードのない変数何を表示されていないmappend
(およびモノイド)と私はどのように確認していませんこれらの作業のいずれか...
は、任意のヘルプ
'mappend'何をするのか、多くの感謝を – user3203476
あなたは上記の言ったように、それはモノイドの操作だモノイドa)が空であることと、b)とすることができるものです"!?。一緒に追加されました。リストはモノイドです。空のリスト( '[]')を使うことができますし、リストを一緒に追加することもできます( 'mappend [1] [2] == [1,2]')。メイベスや地図、テキストなどの多くのものもモノイドを含んでいるので、それらも「マペンド」することができます。 – Libby
非常に明確な返信です!あなたの時間のために多くのありがとう! – user3203476