Abfolge von Funktions -Iterationen

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Abfolge von Funktions -Iterationen

by Anonymous » 20 May 2025, 17:07

Gibt es eine Möglichkeit, Zuweisungsausdrücke oder funktionale Tools zu missbrauchen, um die Sequenz x, f (x), f (f (x)) zu erzeugen, ... in einer Zeile? < /p>
Hier sind einige erfunden

Code: Select all

def iter(x, f, lim=10):
for _ in range(lim):
yield x
x = f(x)

iter(1, lambda x: (2*x)%99)
< /code>
(Dies macht einen zusätzlichen Funktionsaufruf, der nicht genutzt wird. Idealerweise wird dies vermieden.) < /p>
Eine weitere seltsame Idee, die ich hatte, ist "Ein-Argument akkumulieren", sogar hässlicher. Die Idee ist, die Binärfunktion zu verwenden, aber die Listenelemente zu ignorieren! Es wird nicht gut ansammelt. < /P>
from itertools import accumulate
list(accumulate([None]*10, lambda x,y:2*x, initial=1))

Top