功能制作

时间:2012-09-14 21:16:45

标签: python functional-programming

  

可能重复:
  function making

>>> g=lambda x:x+1
>>> composition=lambda f,g:(lambda x:f(g(x)))
>>> f=g
>>> f=composition(f,g)
>>> f(9)
11
>>> f=composition(f,g)
>>> f=composition(f,g)
>>> f=composition(f,g)
>>> f(9)
14

我没有使用函数组合(f,g),而是执行了以下操作

>>> f=g
>>> f=lambda x:f(g(x))
>>> f(8)
RuntimeError: maximum recursion depth exceeded

我只是想用相应的lambda表达式替换函数组合。我很困惑为什么f =成分(f,g)不产生递归,但f = lambda x:f(g(x))确实存在。

0 个答案:

没有答案