Edited at

Ruby と C#(LINQ) と Java8 で FizzBuzz

More than 5 years have passed since last update.

出尽くしたネタなんでしょうけども、個人としては初めて書きました(^_^;)


Ruby

勉強会で教えてもらったので、初めて書きました。


fizzbuzz.rb

p (1..100).to_a

.map{|x|
if x%15==0 then "FizzBuzz"
elsif x%3==0 then "Fizz"
elsif x%5==0 then "Buzz" else x end}
.join(",")


C#


fizzbuzz.cs

Console.WriteLine(

Enumerable.Range(1, 100)
.Select(x=>
x%15==0 ? "FizzBuzz" :
x%3==0 ? "Fizz" :
x%5==0 ? "Buzz" : x.ToString())
.Aggregate("", (acc, x) => acc=="" ? x : acc + "," + x));

文字列をつなげるのは String.Join で良いんだけど、Ruby の join っぽくしてみたかったので、Aggregate を使ってみました。


Java8

System.out.println(

Stream.iterate(1, x->x++).limit(100)
.map(x->
x%15==0 ? "FizzBuzz" :
x%3==0 ? "Fizz" :
x%5==0 ? "Buzz" : String.valueOf(x))
.collect(Collectors.joining(",")));

Ruby 短いっすね。