JJUG CCCおよびid:happy_ryo迎撃オフの件もgdgdになって書けなくなったので、ScalaでFizzBuzzを関数型っぽく書いてみる。

タイトル長い。

関数型っぽく、Intのリストを作り、それをStringのリストに変換し、そのリストに対してprintlnで出力するだけの簡単なお仕事です。

object FizzBuzz {
  def main(args : Array[String]) {
    val list = 1 to 100
    val fizzbuzz = list.map ((x:Int) => {
        var ret:String = ""
        if (x % 3 == 0) ret += "Fizz"
        if (x % 5 == 0) ret += "Buzz"
        if (ret.length == 0) ret = x.toString
        ret
      })
      fizzbuzz.foreach ((x) => {
        println(x)
      })
  }
}

というわけで、5/10(土)に開催のhttp://cappuccino.jp/scala-ja/?Scala%CA%D9%B6%AF%B2%F1%A1%F7%B4%D8%C0%BE-1に参加させていただきます。