Haskellのiterate関数のPython上でのオレオレ実装
iterate関数?
下のような感じ
l = iterate f x
l !! -- return f(f(f(x)))
つまり、iterate関数は、n番目のインデックスがfをn回関数合成したものをxに作用したものである無限リストを返す。
うん、Haskell初学者にありがちな素数の判定法(エラトステネスの篩)に感動して書いてしまったんだ^ω^
class iterate(object):
def __init__(self, f, x):
self.f = f
self.x = x
def __getitem__(self, n):
temp = self.x
for i in range(n):
temp = self.f(self.x)
return temp
t = lambda x: -(x-4)
print iterate(t, 3)[3]
なお、オレオレ実装する前にpythonのmoduleで既にあるといわれると死ぬ模様