Skip to content

Instantly share code, notes, and snippets.

@omiend
Created September 11, 2014 05:14
Show Gist options
  • Save omiend/54d5ef3e7408e5935ac6 to your computer and use it in GitHub Desktop.
Save omiend/54d5ef3e7408e5935ac6 to your computer and use it in GitHub Desktop.
Scala De FizzBuzz
/**
* Scala De FizzBuzz
*/
object FizzBuzz {
/**
* 先ずはJavaっぽく...
*/
def forDeFizzBuzz: Unit = {
for (i: Int <- 1 to 30) {
if (i % 3 == 0 && i % 5 == 0) {
println("Fizz Buzz")
} else if (i % 5 == 0) {
println("Buzz")
} else if (i % 3 == 0) {
println("Fizz")
} else {
println(i)
}
}
}
/**
* map使ってみようぜ
*/
def mapDeFizzBuzz: Unit = {
1 to 30 map { i =>
if (i % 5 == 0 && i % 3 == 0) println("FizzBuzz")
else if (i % 3 == 0) println("Fizz")
else if (i % 5 == 0) println("Buzz")
else println(i)
}
}
/**
* さらにScalaっぽくtupleとmatch使ってみようぜ
*/
def tupleDeFizzBuzz: Unit = {
1 to 30 map {
i => (i % 3, i % 5) match {
case (0, 0) => println("FizzBuzz")
case (0, _) => println("Fizz")
case (_, 0) => println("Buzz")
case _ => println(i)
}
}
}
/**
* ネットで見つけた1行で実現されているFizzBuzz
* 引用元:
* https://docs.google.com/presentation/d/19-1aYBm4rznZTvCmWyBgx9ffTvz8Z_cRRFaq9PxsC9M/edit#slide=id.i189
*/
def ichigyouDeFizzBuzz: Unit = {
for(i <- 1 to'd') println(Set("Fizz"*(1-i%3)+"Buzz"*(1-i%5),i)-""head)
}
/**
* main
*/
def main(args: Array[String]): Unit = {
forDeFizzBuzz
mapDeFizzBuzz
tupleDeFizzBuzz
ichigyouDeFizzBuzz
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment