kakkun61
Data.Monoid.First
が deprecated になるよとドキュメントに書いてあったので代替方法などについて書きましたhttps://kakkun61.hatenablog.com/entry/2020/10/28/Data.Monoid.First_%E3%81%A8_Data.Semigroup.First_%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF_Last
Data.Monoid.First
が deprecated になるよとドキュメントに書いてあったので代替方法などについて書きましたNum
型クラスのインスタンスは +
の両辺を正格に評価すべきであるにも関わらず、`sum` などは事実上 foldr (+)
相当なので、最適化で特殊化されない限りサンクが増えてしまうよ、という主張だという認識です。foldl' (+)
ではないかと。Data.Semigroup.First
は Monoid になれないと思います。Data.Monoid.First
は Maybe
の性質を持ってて Nothing
が単位元になってますね。extractor = fmap bstrip $ buildRecordExtractor bextractors { hoge = extractField "hoge" <|> extractField "oldHoge" }
instance Serialise Foo where bundleSerialise = bundleVia WineryRecord extractor = buildExtractor ...
やっぱりざっと調べた限り、圏論っぽい名前のFunctorやMonadなどが標準に入ったのはHaskell 1.3からみたいですね。
foo -t a -t b
とあるとき -t a
が優先されていたのが、GNU getopt などに合わせて -t b
が優先されるようにfoo -t a -t b
とあるとき [a]
のようにリストとして取得できるように