Warning: Not recommended for fainted ❤️ Enjoy 🤘
- Functional prodigy
- Meta functional expert
- One liner wizard
- The Librarian
- Classy theorist
- Closure fanatic
- Lazy idealist
- OO based lazy conservative
- Generator magician
- Iterator maniac
- Rob Pike
Functional prodigy
def fib(n):
    if n <= 1:
        return n
    return fib(n-1) + fib(n-2)
Meta Functional Expert
def fib(a, b, nth=0, current=0):
    if nth == current:
        return a
    return fib(b, a + b, nth, current+1)
def main():
    series = [fib(0,1,n) for n in range(50)]
    print(series)
One Liner Wizard
f = lambda n: n if n <= 1 else f(n-1) + f(n-2)  # f and not fib because functional laws
The Librarian
pip install fibonacci
from fibonacci import fibo
series = [fibo(n) for n in range(10)]
print(series) 
Classy Theorist
class Fibonacci:
    def __init__(self, nth):
        self.nth = nth
        self.a = 0
        self.b = 1
        self.current = 0
    def get(self):
        while True:
            if self.current == self.nth:
                    return self.a
              self.a, self.b = self.b, self.a + self.b
              self.current += 1
def main():
    f = Fibonacci(100)
    # God bless getters
    print(f.get())
Closure Fanatic
from functools import wraps
def closo_fibo_stream():
    # precious closures
    a, b = 0, 1
    @wraps
    def wrapper(*args, **kwargs):
        nonlocal a, b
        current = a
        a, b = b, a + b
        return current
    return wrapper
def main():
    streamer = closo_fibo_stream()
    series = [streamer() for i in range(10)]
    print(series)
Lazy Idealist
def lazy_fibo():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b
def main():
    from itertools import islice
    for n in islice(lazy_fibo(), 100):
        print(n) # i feel good
OO based Lazy conservative
# refactored into class coz why not??
class LazyFibo:
    def __init__(self):
        self.a = 0
        self.b = 1
    def __iter__(self):
        while True:
            yield self.a
            self.a , self.b = self.b, self.b + self.a
def main():
    from itertools import islice
    for n in islice(LazyFibo(),10):
        print(n)
Generator Magician
def fib_magico(a, b):
    yield a
    yield from fib_magico(b, a + b)
def main():
    from itertools import islice
    for n in islice(fib_magico(0, 1), 10):
            print(n)
Iterator Maniac
class fib_iter:
    def __init__(self, n):
        self.n = n
        self.current = 0
        self.a = 0
        self.b = 1
    def __next__(self):
        if self.current > self.n:
            raise StopIteration("don't care anymore")
        current = self.a
        self.a, self.b = self.b, self.a + self.b
        self.current += 1
        return current
class fib:
    def __init__(self, n):
        self.n = n
    def __iter__(self):
        return fib_iter(self.n)
def main():
    for i in fib(10):
        print(i)
Rob Pike
def fib(n):
    res = []
    a, b = 0, 1
    for i in range(n):
        res.append(a)
        a, b = b, a + b
    return res
Thanks!! Checkout the repo below
       RobusGauli
       / 
        n-ways-to-fibonacci-series
      
        RobusGauli
       / 
        n-ways-to-fibonacci-series
      
    
    But why?
11 ways to Fibonacci series
    because I'm bored and software are broken. Don't believe me
    
  
Warning: Not recommended for fainted
❤️ Enjoy🤘 
By professionals
- Functional prodigy
- Meta functional expert
- One liner wizard
- The Librarian
- Classy theorist
- Closure fanatic
- Lazy idealist
- OO based lazy conservative
- Generator magician
- Iterator maniac
- Abandoned
Functional prodigy
def fib(n)
    if n <= 1:
        return n
    return fib(n-1) + fib(n-2)
Meta Functional Expert
def fib(a, b, nth=0, current=0):
    if nth == current:
        return a
    return fib(b, a + b, nth, current+1)
def main():
    series = [fib(0,1,n) for n in range(50)]
    print(series)
One Liner Wizard
f = lambda n… 
 
              
 
   
    
Top comments (1)
That was pretty neat 😎