Monoid for ZipList
박신환
ndospark320 at naver.com
Thu May 3 09:22:16 UTC 2018
As instance Alternative ZipList is defined since 4.11.0.0:
instanceAlternativeZipListwhereempty=ZipList[]ZipList<|>ZipList=ZipList(xs++drop(lengthxs)ys)
It seems perfectly fine to make Monoid for ZipList as followings:
instance Semigroup a => Semigroup (ZipList a) where
ZipList [] <> ZipList ys = ZipList ys
ZipList xs <> ZipList [] = ZipList xs
ZipList (x:xs) <> ZipList (y:ys) = ZipList (x <> y : ZipList xs <> ZipList ys)
instance Semigroup a => Monoid (ZipList a) where
mempty = ZipList []
Note that this semantic is similar to that of Maybe.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180503/473dce0d/attachment.html>
More information about the Libraries
mailing list