2010年9月4日土曜日

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

C# で。


なるほどなぁ。

それで、C# でやってみると、
  1. using System;  
  2.   
  3. namespace Example  
  4. {  
  5.   public class Program  
  6.   {  
  7.     public static void Main(string[] args)  
  8.     {  
  9.       Func<bool, Func<bool>> flipflop = p =>  
  10.       {   
  11.         p = !p;  
  12.         return (() => p = !p);  
  13.       };  
  14.   
  15.       Func<bool> fl = flipflop(false);  
  16.   
  17.       Console.WriteLine(fl());   
  18.       Console.WriteLine(fl());   
  19.       Console.WriteLine(fl());   
  20.       Console.WriteLine(fl());   
  21.     }  
  22.   }  
  23. }  
  24. /* 
  25.  * ビルド: 
  26.  * 
  27.  *   gmcs flipflop.cs 
  28.  * 
  29.  * 実行: 
  30.  * 
  31.  *   mono flipflop.exe 
  32.  * 
  33.  */  
$ mono flipflop.exe
False
True
False
True

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

0 件のコメント:

コメントを投稿