Anonymous user
Anonymous recursion: Difference between revisions
→{{header|Python}}
Line 966:
[None, None, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34]</lang>
A different approach: the function always receives itself as the first argument, and when recursing, makes sure to pass the called function as the first argument also
<lang python>>>> from functools import partial
>>> Y = lambda f: partial(
>>> fib = lambda f, n: None if n < 0 else (0 if n == 0 else (1 if n == 1 else f(f, n-1) + f(f, n-2)))
>>> [ Y(fib)(i) for i in range(-2, 10) ]
[None, None, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34]</lang>
|