常规函数可以在其定义中包含对自身的调用,没问题.我无法弄清楚如何使用lambda函数来做这件事,原因很简单,因为lambda函数没有可以引用的名称.有办法吗?怎么样?
我目前正在介绍Python和计算理论课,最近有一个关于中期的难题,我根本无法解决.它涉及为添加数字的程序编写代码.我相信这个问题应该使用递归.我不记得问题究竟是如何措辞的,但这是基本的想法.
实现multiadder(n)函数,它接受一个非负整数n并将n任意值加在一起.要添加的每个值必须作为单独的调用写入.例如:
>>> multi_three = multiadder(3)
>>> multi_three(1)(2)(3)
6
>>> multiadder(5)(1)(2)(3)(4)(5)
15
Run Code Online (Sandbox Code Playgroud)
必须通过填写空白来编写代码.
def multiadder(n):
assert n > 0
if _________________________ :
return _________________________
else:
return _________________________
Run Code Online (Sandbox Code Playgroud)
我们在课堂上讨论的主题是高阶函数,递归,lambdas和控制语句.我们不允许使用列表和集等数据结构,也不允许导入任何内容.
有人请帮忙.这是我无法测试的唯一问题!