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

柯里化和递归

柯里化和递归

不负相思意 2021-06-06 06:49:23
我的问题与这里的问题密切相关: Python 中的函数链 ,这是CodeWars 上的“A 链添加函数”问题。链接中有很多有用的解决方案,但我只想找出我自己的解决方案有什么问题。例如,我想到的第一件事就是使用 Curryingdef add(a):    def add2(b):        return b + a    return add2add(1)(2)会给我3作为输出。现在,我想补充递归,这样add(1),add(1)(2)(3)和add(1)(2)(3)(4)等也按预期方式工作:def add(a):    if not callable(a):        return a    else:        def add2(b):            return b + add(a)        return add2这次按预期add(1)返回1,但是add(1)(2),add(1)(2)(3)等等给了我错误:TypeError: 'int' object is not callable谁能指出这里有什么问题?另外,如何解决呢?非常感谢您的帮助!
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

谁能指出这里有什么问题?

当你调用它add(1),然后a1(所以不是调用),它会返回1。下一步:您将拥有1(2)但因为1不是可调用的所以失败了。

另外,如何解决呢?

你不能,因为你需要知道什么时候结束递归,但你只知道你完全完成当前步骤是否需要更深入。因此,不幸的是,您选择的方法不起作用,您必须寻找不同的方法。这就是您指向有关函数链的问题链接的地方


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

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