Hex Artifact Content
Not logged in

Artifact 5b2c3c452aca5b18dd794ec5224325774e804146:


0000: 64 65 66 20 66 69 62 28 78 29 0a 7b 0a 09 69 66  def fib(x).{..if
0010: 20 78 3c 32 20 74 68 65 6e 20 31 20 65 6c 73 65   x<2 then 1 else
0020: 20 66 69 62 28 78 2d 31 29 20 2b 20 66 69 62 28   fib(x-1) + fib(
0030: 78 2d 32 29 0a 7d 3b 0a 0a 6c 65 74 20 75 70 74  x-2).};..let upt
0040: 6f 20 3d 20 66 75 6e 28 6e 2c 20 66 29 7b 0a 09  o = fun(n, f){..
0050: 69 66 20 6e 20 3e 20 30 3a 20 75 70 74 6f 28 6e  if n > 0: upto(n
0060: 2d 31 2c 66 29 3b 0a 09 66 28 6e 29 0a 7d 3b 0a  -1,f);..f(n).};.
0070: 0a 76 61 72 20 63 6f 6d 70 6f 73 65 20 3d 20 66  .var compose = f
0080: 75 6e 28 66 2c 67 29 7b 20 66 75 6e 28 78 29 7b  un(f,g){ fun(x){
0090: 66 28 67 28 78 29 29 7d 20 7d 3b 0a 76 61 72 20  f(g(x))} };.var 
00a0: 22 3c 3c 22 20 3d 20 63 6f 6d 70 6f 73 65 3b 0a  "<<" = compose;.
00b0: 0a 75 70 74 6f 28 31 36 2c 20 70 72 69 6e 74 3c  .upto(16, print<
00c0: 3c 66 69 62 29 3b 0a                             <fib);.