Es gibt ein Tutorial an http://pythonprogramming.jottit.com/functional_programming und es gibt ein Beispiel, wie Sie mit Funktionen höherer Ordnung zuweisen Funktionen zurückzukehren:Ist es möglich, Rückgabewert von zwei Funktionen höherer Ordnung auf die gleiche Variable in Python [siehe Details]
def trace(f):
f.indent = 0
def g(x):
print '| ' * f.indent + '|--', f.__name__, x
f.indent += 1
value = f(x)
print '| ' * f.indent + '|--', 'return', repr(value)
f.indent -= 1
return value
return g
und
def memoize(f):
cache = {}
def g(x):
if x not in cache:
cache[x] = f(x)
return cache[x]
return g
aber ich habe nicht, wie es in der Lage ist, zwei Funktionen auf denselben variablen auf den Aussagen zuzuordnen:
fib = trace(fib)
fib = memoize(fib)
print fib(4)
scheinen sowohl Trace als auch Memoize auf den letzten Aufruf zu wirken. Warum das?
„beide Spur und memoize scheinen Wirkung auf den letzten Aufruf zu haben“ Sie wurden beide angerufen. Noch Fragen? –