我玩弄它出現在去年圍繞code golf question yesterday for building a christmas tree和我扔一起快速遞歸算法來完成這項工作:函數可以遞歸地調用自己嗎?
static string f(int n, int r)
{
return "\n".PadLeft(2 * r, '*').PadLeft(n + r)
+ (r < n ? f(n, ++r) : "*".PadLeft(n));
}
我得想知道如果我可以做同樣的事情用FUNC:
Func<int,int,string> f = (n, r) => {
return "\n".PadLeft(2 * r, '*').PadLeft(n + r)
+ (r < n ? f(n, ++r) : "*".PadLeft(n));
};
這將做的工作除了遞歸部分不識別呼叫到f實際上是把自己的電話。這將導致我得出結論,一個Func 不能遞歸調用自己 - 但我不知道我是否得出錯誤的結論,或者如果它可以完成,但需要不同的方法。
任何想法?
相同http://stackoverflow.com/questions/1079164/c-recursive-functions-with-lambdas? – 2009-11-20 16:56:17