fact = lambda x: 1 if x == 0 else x * fact(x-1)
或者,对于早期版本的python:
fact = lambda x: x == 0 and 1 or x * fact(x-1)
:使用其他答案中的想法,我能够将阶乘函数嵌入单个未命名的lambda中:
>>> map(lambda n: (lambda f, *a: f(f, *a))(lambda rec, n: 1 if n == 0 else n*rec(rec, n-1), n), range(10))
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
因此有可能,但并非真正推荐!