为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2021-10-10 16:25:24
我的任务是factorial仅使用 lambda 表达式来实现该函数。这是我尝试过的fact = lambda n: if n == 0 return 1 else ...我被卡住了!编辑: 修复 if 语句语法错误fact = lambda n: 1 if n == 0 else ...我又卡住了。。怎么做?
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

一个简单的方法是使用您分配lambda到的变量的名称作为递归调用代码的方式:


>>> fact = lambda n: 1 if n <= 0 else n * fact(n - 1)

>>> fact(10)

3628800

>>> 

有更复杂的解决方案,涉及将lambda表达式传递给lambda表达式或 Y 组合器。您的方法已经注定要使用if ... else ... 语句。一个lambda表达式只能包含其他的表情,不发言,所以你需要使用 ... if ... else ... 表达式语法来代替。


查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 250 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信