如何更新纯函数?

Zio*_*fil 4 python functional-programming

我正在尝试执行以下操作:我想编写一个函数translate(f, c),该函数接受给定的函数f(例如,我们知道这f是单个变量的函数x)和一个常数,c并返回一个计算的新函数f(x+c)

我知道在Python函数中是一流的对象,我可以将其f作为参数传递,但是我想不出一种方法也可以不传递x,这会破坏目的。

wim*_*wim 6

技巧是让translate返回一个函数实例

def translate(f, c):
    def func(x):
        return f(x + c)
    return func
Run Code Online (Sandbox Code Playgroud)

现在,变量x为“ free”,并且名称fc来自封闭的作用域。