如何使用 lambda 表达式实现递归函数

我的任务是factorial仅使用 lambda 表达式来实现该函数。这是我尝试过的

fact = lambda n: if n == 0 return 1 else ...

我被卡住了!

编辑: 修复 if 语句语法错误

fact = lambda n: 1 if n == 0 else ...

我又卡住了。。

怎么做?


蛊毒传说
浏览 253回答 1
1回答

MMTTMM

一个简单的方法是使用您分配lambda到的变量的名称作为递归调用代码的方式:>>> fact = lambda n: 1 if n <= 0 else n * fact(n - 1)>>> fact(10)3628800>>>&nbsp;有更复杂的解决方案,涉及将lambda表达式传递给lambda表达式或 Y 组合器。您的方法已经注定要使用if ... else ... 语句。一个lambda表达式只能包含其他的表情,不发言,所以你需要使用 ... if ... else ... 表达式语法来代替。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python