Visual C# 2008 Express Editionを入れて、とりあえずFizz Buzzでも書くか、と思って作ったものの、すごくあやしいにおいのぷんぷんする、というよりかなり間違っているものになった気がします。

using System;
using System.Linq;
 
namespace Hello2008CS
{
    class Program
    {
        static void Main()
        {
            var fizzbuzz = Enumerable.Range(1, 20).Select(
                delegate(int i)
                {
                    string s;
                    if (i % 5 == 0)
                        s = "fizz";
                    else
                        s = "";
 
                    if (i % 3 == 0)
                        s += "buzz";
 
                    if (s.Length == 0)
                        s = i.ToString();
                    return s;
                });
            foreach (var s in fizzbuzz)
            {
                Console.WriteLine(s);
            }
        }
    }
}

なんでしょう、SelectをLispでいうところのmap関数のように捉え、しかもそこへ(ラムダ式ではなく)匿名デリゲートを使っているところが、違和感の元なのでしょうか。


ところで、AB5にもForeachが来るみたいですよ。ついでの扱いで申し訳ないですけど。

スポンサード リンク

この記事のカテゴリ

  • ⇒ 無茶でした、すみません