ラムダ式で再帰してみるテスト
ふと思い立ったので
ラムダ式で再帰
してみた。
var stackLevel = 10;
Action<int> display = i => {
foreach(var x in Enumerable.Range(0, i)) Console.Write("R");
Console.WriteLine();
};
Action<int> a = null;
a = i => {
++i;
display(i);
if (i < stackLevel) a(i);
display(i);
--i;
};
a(0);
Console.ReadKey();
実行結果は以下の通り。
R
RR
RRR
RRRR
RRRRR
RRRRRR
RRRRRRR
RRRRRRRR
RRRRRRRRR
RRRRRRRRRR
RRRRRRRRRR
RRRRRRRRR
RRRRRRRR
RRRRRRR
RRRRRR
RRRRR
RRRR
RRR
RR
R
まぁ、今更だよな~
と思ってググってみると、いろんなところで既に試されているのね・・・orz
でも動くと嬉しいw