Skip to content

Instantly share code, notes, and snippets.

@noelmarkham
Last active December 14, 2015 03:18
Show Gist options
  • Save noelmarkham/5019450 to your computer and use it in GitHub Desktop.
Save noelmarkham/5019450 to your computer and use it in GitHub Desktop.
Scala FizzBuzz
scala> import scalaz._
import scalaz._
scala> import Scalaz._
import Scalaz._
scala> def check(i: Int, divisor: Int, s: String): Option[String] = if (i % divisor == 0) s.some else None
check: (i: Int, divisor: Int, s: String)Option[String]
scala> (1 to 50) map (i => (check(i, 3, "Fizz") |+| check(i, 5, "Buzz")).getOrElse(i))
res1: scala.collection.immutable.IndexedSeq[Any] = Vector(1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, FizzBuzz, 31, 32, Fizz, 34, Buzz, Fizz, 37, 38, Fizz, Buzz, 41, Fizz, 43, 44, FizzBuzz, 46, 47, Fizz, 49, Buzz)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment