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