Python 3.x Python:使用其他HOF定义高阶函数(HOF)

Python 3.x Python:使用其他HOF定义高阶函数(HOF),python-3.x,higher-order-functions,Python 3.x,Higher Order Functions,我正在准备期中考试,考试形式中有固定的QN。 高阶函数(HOF)只是一个广义函数,它吸收了其他函数以变得更具体。以下是两个高阶函数 def tail(f, a, n): if n == 0: return a else: return tail(f, f(n, a), n-1) def fold(op, f, n): if n==0: return f(0) else: return op(f(n)

我正在准备期中考试,考试形式中有固定的QN。 高阶函数(HOF)只是一个广义函数,它吸收了其他函数以变得更具体。以下是两个高阶函数

def tail(f, a, n):
    if n == 0:
        return a
    else:
        return tail(f, f(n, a), n-1)

def fold(op, f, n):
    if n==0:
        return f(0)
    else:
        return op(f(n), fold(op, f, n-1))
我的问题是,是否可以根据折叠(如下格式所示)来定义尾部(如上所示)。如果可能的话,有人能告诉我T1,T2,T3的表达式是什么吗?如果不可能,请解释原因

测试用例:元组反转

def test(seq,f, a, n):
    print(tail(f, a, n)) #test original func

    print(tail2(f, a, n)) #test invented func

x=(1,2,3,4,5)
print(test(x,lambda n,a: a+(x[n-1],),(),len(x)))
def tail2(f, a, n):  
    return fold(lambda n,a: a if n==0 else f(n,a),
                lambda n: f(n,a),
                n)
def test(seq,f, a, n):
    print(tail(f, a, n)) #test original func

    print(tail2(f, a, n)) #test invented func

x=(1,2,3,4,5)
print(test(x,lambda n,a: a+(x[n-1],),(),len(x)))