ネタ元Buzzになる数字をn個挙げる
それLINQでryってネタだったのでLINQPad起動してやってみました。
void Main() { // n個 int n = 5; // 無限リスト(無限じゃないけどintの最大値まで・・・) var list = Enumerable.Range(1, int.MaxValue) // Buzzのものだけ取り出して .Where(i => FizzBuzz(i) == "Buzz") // n個とる .Take(n); // 表示 foreach (var i in list) { Console.WriteLine(i); } } // 数字を受け取ってFizzBuzzのルールに従って変換 string FizzBuzz(int n) { return n % 15 == 0 ? "FizzBuzz" : n % 3 == 0 ? "Fizz" : n % 5 == 0 ? "Buzz" : n.ToString(); }
まぁ、関数型言語ほど簡潔にはなりませんね・・・。