Wie konstruiere ich ein solches Tool zur funktionalen Programmierung in Python?

7

Ich möchte eine Funktion namens times() , um folgendes zu machen:

times(func,2) entspricht lambda x:func(func(x))

und times(func,5) entspricht lambda x:func(func(func(func(func(x)))))

Gibt es ein solches Tool in Python? Wie würde der Code aussehen, wenn ich ihn selbst schreiben möchte?

Danke!

    
Hanfei Sun 20.07.2012, 23:43
quelle

2 Antworten

15

Ich würde vorschlagen, dies power() zu nennen, da dies die n th-Potenz einer Funktion ist. Das gibt es in der Standardbibliothek nicht, aber Sie können es einfach selbst implementieren:

%Vor%     
Sven Marnach 20.07.2012, 23:46
quelle
5

Danke, Sven

Ich habe einen rekursiven Weg gefunden, um das zu tun, aber deins sieht pythonischer aus:

%Vor%

Und ein Weg mit Decorator implementiert:

%Vor%     
Hanfei Sun 21.07.2012 00:14
quelle