RosettaCodeData/Task/Fibonacci-sequence/Python/fibonacci-sequence-15.py

22 lines
408 B
Python

'''Nth Fibonacci term (by folding)'''
from functools import reduce
from operator import add
# nthFib :: Integer -> Integer
def nthFib(n):
'''Nth integer in the Fibonacci series.'''
def go(ab, _):
return ab[1], add(*ab)
return reduce(go, range(1, n), (0, 1))[1]
# MAIN ---
if __name__ == '__main__':
print(
'1000th term: ' + repr(
nthFib(1000)
)
)