[英]How to implement a recursive function using lambda expressions
我的任务是仅使用lambda表达式来实现factorial
函数。 这是我尝试过的
fact = lambda n: if n == 0 return 1 else ...
我被卡住了!
编辑: 修复如果语句语法错误
fact = lambda n: 1 if n == 0 else ...
我又被卡住了..
怎么做?
一种简单的方法是将您分配给lambda
的变量的名称用作递归调用代码的方式:
>>> fact = lambda n: 1 if n <= 0 else n * fact(n - 1)
>>> fact(10)
3628800
>>>
有更复杂的解决方案,包括将lambda
表达式传递给lambda
表达式或Y组合器。 使用if ... else ...
语句已经注定了您的方法。 lambda
表达式只能包含其他表达式 ,不能包含语句 ,因此您需要使用... if ... else ...
表达式语法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.