fork download
  1. # Y combinator revisited
  2.  
  3. Y = lambda f: (lambda x: f(lambda y: x(x)(y)))(lambda x: f(lambda y: x(x)(y)))
  4. R = lambda f: lambda n: n if n <= 1 else f(n-1) + f(n-2)
  5. S = lambda f: lambda n: 1 if n == 0 else n * f(n-1)
  6.  
  7. fiby = Y(R)
  8. facty = Y(S)
  9.  
  10. print("Fibonacci sequence:")
  11. for i in range(21):
  12. print(f"f({i})={fiby(i)}")
  13.  
  14. print("Factorial:")
  15. for i in range(17):
  16. print(f"{i}!={facty(i)}")
Success #stdin #stdout 0.14s 14108KB
stdin
Standard input is empty
stdout
Fibonacci sequence:
f(0)=0
f(1)=1
f(2)=1
f(3)=2
f(4)=3
f(5)=5
f(6)=8
f(7)=13
f(8)=21
f(9)=34
f(10)=55
f(11)=89
f(12)=144
f(13)=233
f(14)=377
f(15)=610
f(16)=987
f(17)=1597
f(18)=2584
f(19)=4181
f(20)=6765
Factorial:
0!=1
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
11!=39916800
12!=479001600
13!=6227020800
14!=87178291200
15!=1307674368000
16!=20922789888000