Aslinda atadigimiz “degisken” sabit oldugu icin isimiz kolay. Surada &&& ile cozmusum. Burada:
arrowAnd = lambda f, g: lambda x: (f(x), g(x))
fib_util = lambda n: arrowAnd(lambda i: i[1], sum)(fib_util(n-1)) if n else (0, 1)
fib = lambda n: fib_util(n)[0]
Artik lambda ile cozuyorum:
fib_util = lambda n: (0, 1) if n == 0 else (lambda p: (p[1], p[0] + p[1]))(fib_util(n-1))
fib = lambda n: fib_util(n)[0]