gpt4 book ai didi

c# - Function<> 可以递归调用自身吗?

转载 作者:太空狗 更新时间:2023-10-29 20:49:51 29 4
gpt4 key购买 nike

我在玩一个 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 不能递归地调用自己 - 但我想知道我是否得出了错误的结论,或者是否可以完成但需要不同的方法。

有什么想法吗?

最佳答案

Func<int, int, string> f = null;
f = (x, y) => f(x, y);

显然这会导致 StackOverflowException,但您明白了。

关于c# - Function<> 可以递归调用自身吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1771293/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com