なるほどなぁ。
それで、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 件のコメント:
コメントを投稿