Created
September 11, 2014 05:14
-
-
Save omiend/54d5ef3e7408e5935ac6 to your computer and use it in GitHub Desktop.
Scala De FizzBuzz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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