2010年9月4日土曜日

False, True を次々と返す簡単なお仕事

このエントリーをはてなブックマークに追加
C# で。


なるほどなぁ。

それで、C# でやってみると、
using System;

namespace Example
{
  public class Program
  {
    public static void Main(string[] args)
    {
      Func<bool, Func<bool>> flipflop = p =>
      { 
        p = !p;
        return (() => p = !p);
      };

      Func<bool> fl = flipflop(false);

      Console.WriteLine(fl()); 
      Console.WriteLine(fl()); 
      Console.WriteLine(fl()); 
      Console.WriteLine(fl()); 
    }
  }
}
/*
 * ビルド:
 *
 *   gmcs flipflop.cs
 *
 * 実行:
 *
 *   mono flipflop.exe
 *
 */
$ mono flipflop.exe
False
True
False
True

おおお、Closure -> JavaScript 版と同様なんだけど、なんだろう、この少し賢くなった感覚は。参考になりました。

0 件のコメント:

コメントを投稿