fib.formal
· 277 B · Text
Исходник
Playground
<> (defer ?x) (?x)
<> ((Num 0) + (Num ?n)) ((Num ?n))
<> ((Num ?n) + (Num 0)) ((Num ?n))
<> ((Num ?x) + (Num ?y)) ((Num @add ?x ?y))
<> (fib (Num 0)) ((Num 0))
<> (fib (Num 1)) ((Num 1))
<> (fib (Num ?n)) (defer fib (Num @sub ?n 1) + defer fib (Num @sub ?n 2))
fib (Num 12)
1 | <> (defer ?x) (?x) |
2 | |
3 | <> ((Num 0) + (Num ?n)) ((Num ?n)) |
4 | <> ((Num ?n) + (Num 0)) ((Num ?n)) |
5 | <> ((Num ?x) + (Num ?y)) ((Num @add ?x ?y)) |
6 | |
7 | <> (fib (Num 0)) ((Num 0)) |
8 | <> (fib (Num 1)) ((Num 1)) |
9 | <> (fib (Num ?n)) (defer fib (Num @sub ?n 1) + defer fib (Num @sub ?n 2)) |
10 | |
11 | fib (Num 12) |
12 |
fib.log.txt
· 3.3 KiB · Text
Исходник
Playground
--- :: fib (Num 5)
009 :: fib (Num @sub 5 1) + fib (Num @sub 5 2)
002 :: fib (Num 4) + fib (Num @sub 5 2)
002 :: fib (Num 4) + fib (Num 3)
009 :: fib (Num @sub 4 1) + fib (Num @sub 4 2) + fib (Num 3)
009 :: fib (Num @sub 4 1) + fib (Num @sub 4 2) + fib (Num @sub 3 1) + fib (Num @sub 3 2)
002 :: fib (Num 3) + fib (Num @sub 4 2) + fib (Num @sub 3 1) + fib (Num @sub 3 2)
002 :: fib (Num 3) + fib (Num 2) + fib (Num @sub 3 1) + fib (Num @sub 3 2)
002 :: fib (Num 3) + fib (Num 2) + fib (Num 2) + fib (Num @sub 3 2)
002 :: fib (Num 3) + fib (Num 2) + fib (Num 2) + fib (Num 1)
009 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num 2) + fib (Num 2) + fib (Num 1)
009 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num 2) + fib (Num 1)
009 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num 1)
008 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1)
002 :: fib (Num 2) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1)
002 :: fib (Num 2) + fib (Num 1) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1)
002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1)
002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1)
002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num @sub 2 2) + (Num 1)
002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1)
009 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1)
008 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1)
008 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1)
007 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1)
008 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + fib (Num 0) + (Num 1)
007 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1)
002 :: fib (Num 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1)
002 :: fib (Num 1) + fib (Num 0) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1)
006 :: fib (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1)
004 :: fib (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 1) + (Num 0) + (Num 1)
004 :: fib (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 1) + (Num 1)
008 :: (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 1) + (Num 1)
007 :: (Num 1) + (Num 0) + (Num @add 1 1) + (Num 1) + (Num 1)
003 :: (Num 1) + (Num 0) + (Num 2) + (Num 1) + (Num 1)
006 :: (Num 1) + (Num 0) + (Num 2) + (Num @add 1 1)
005 :: (Num 1) + (Num 2) + (Num @add 1 1)
003 :: (Num 1) + (Num 2) + (Num 2)
006 :: (Num @add 1 2) + (Num 2)
003 :: (Num 3) + (Num 2)
006 :: (Num @add 3 2)
003 :: (Num 5)
--- :: (Num 5)
Completed in 40 rewrites needing 177 iterations.
1 | --- :: fib (Num 5) |
2 | 009 :: fib (Num @sub 5 1) + fib (Num @sub 5 2) |
3 | 002 :: fib (Num 4) + fib (Num @sub 5 2) |
4 | 002 :: fib (Num 4) + fib (Num 3) |
5 | 009 :: fib (Num @sub 4 1) + fib (Num @sub 4 2) + fib (Num 3) |
6 | 009 :: fib (Num @sub 4 1) + fib (Num @sub 4 2) + fib (Num @sub 3 1) + fib (Num @sub 3 2) |
7 | 002 :: fib (Num 3) + fib (Num @sub 4 2) + fib (Num @sub 3 1) + fib (Num @sub 3 2) |
8 | 002 :: fib (Num 3) + fib (Num 2) + fib (Num @sub 3 1) + fib (Num @sub 3 2) |
9 | 002 :: fib (Num 3) + fib (Num 2) + fib (Num 2) + fib (Num @sub 3 2) |
10 | 002 :: fib (Num 3) + fib (Num 2) + fib (Num 2) + fib (Num 1) |
11 | 009 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num 2) + fib (Num 2) + fib (Num 1) |
12 | 009 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num 2) + fib (Num 1) |
13 | 009 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num 1) |
14 | 008 :: fib (Num @sub 3 1) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) |
15 | 002 :: fib (Num 2) + fib (Num @sub 3 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) |
16 | 002 :: fib (Num 2) + fib (Num 1) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) |
17 | 002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num @sub 2 2) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) |
18 | 002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) |
19 | 002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num @sub 2 2) + (Num 1) |
20 | 002 :: fib (Num 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1) |
21 | 009 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + fib (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1) |
22 | 008 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + fib (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1) |
23 | 008 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + fib (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1) |
24 | 007 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + fib (Num 1) + fib (Num 0) + (Num 1) |
25 | 008 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + fib (Num 0) + (Num 1) |
26 | 007 :: fib (Num @sub 2 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1) |
27 | 002 :: fib (Num 1) + fib (Num @sub 2 2) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1) |
28 | 002 :: fib (Num 1) + fib (Num 0) + (Num 1) + (Num 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1) |
29 | 006 :: fib (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 0) + (Num 1) + (Num 0) + (Num 1) |
30 | 004 :: fib (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 1) + (Num 0) + (Num 1) |
31 | 004 :: fib (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 1) + (Num 1) |
32 | 008 :: (Num 1) + fib (Num 0) + (Num @add 1 1) + (Num 1) + (Num 1) |
33 | 007 :: (Num 1) + (Num 0) + (Num @add 1 1) + (Num 1) + (Num 1) |
34 | 003 :: (Num 1) + (Num 0) + (Num 2) + (Num 1) + (Num 1) |
35 | 006 :: (Num 1) + (Num 0) + (Num 2) + (Num @add 1 1) |
36 | 005 :: (Num 1) + (Num 2) + (Num @add 1 1) |
37 | 003 :: (Num 1) + (Num 2) + (Num 2) |
38 | 006 :: (Num @add 1 2) + (Num 2) |
39 | 003 :: (Num 3) + (Num 2) |
40 | 006 :: (Num @add 3 2) |
41 | 003 :: (Num 5) |
42 | --- :: (Num 5) |
43 | Completed in 40 rewrites needing 177 iterations. |