エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント1件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
あなたの知らないSemigroupの世界 - あどけない話
自分で定義するデータの中には、足し算したくなるようなデータがある。たとえば、送信と受信のカウンタ... 自分で定義するデータの中には、足し算したくなるようなデータがある。たとえば、送信と受信のカウンターを定義したとしよう。 data Metrics = Metrics { rx :: Int , ts :: Int } deriving (Eq, Show) これは以下のように足し算できると嬉しいだろう。 > Metrics 1 2 + Metrics 3 4 Metrics {rx = 4, ts = 6} しかしこれは Num のインスタンスにすべきではない。このデータ型に掛け算は定義できないからだ。かといって、addMetrics みたいな関数を定義するのはかっこ悪い。 > Metrics 1 2 `addMetrics` Metrics 3 4 Metrics {rx = 4, ts = 6} このように演算子が一個だけ欲しいと思ったら、それは多分 Monoid だ。 import
2018/09/10 リンク