Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object Monoid {
- implicit object IntMonoid extends Monoid[Int] {
- def mzero = 0
- def mappend(a: Int, b: Int) = a + b
- }
- implicit object StringMonoid extends Monoid[String] {
- def mzero = ""
- def mappend(a1: String, a2: String) = a1 + a2
- }
- }
- def sum[T](xs: List[T])(implicit m: Monoid[T]): T = xs.foldLeft(m.mzero)(m.mappend)
- p(sum(List(1, 2, 3))) // prints ###> 6
- p(sum(List("lamb", "da"))) // prints ###> lambda
Advertisement
Add Comment
Please, Sign In to add comment