8 lines
344 B
Scala
8 lines
344 B
Scala
def replaceMultiples(x: Int, rs: (Int, String)*): Either[Int, String] =
|
|
rs map { case (n, s) => Either cond(x % n == 0, s, x)} reduceLeft ((a, b) =>
|
|
a fold(_ => b, s => b fold(_ => a, t => Right(s + t))))
|
|
|
|
def fizzbuzz = replaceMultiples(_: Int, 3 -> "Fizz", 5 -> "Buzz") fold(_.toString, identity)
|
|
|
|
1 to 100 map fizzbuzz foreach println
|