SHOW:
|
|
- or go back to the newest paste.
1 | let fib (n) = | |
2 | - | if not (mem n !map) then |
2 | + | if not (mem n !map) then ( |
3 | ||
4 | let i = ref (fst (max_binding !map)) in | |
5 | ||
6 | let prev = ref (find !i !map) in | |
7 | let prevprev = ref (find (!i - 1) !map) in | |
8 | ||
9 | while !i != n do | |
10 | i := !i + 1; | |
11 | ||
12 | map := add !i (!prev + !prevprev) !map; | |
13 | ||
14 | prevprev := !prev; | |
15 | prev := find !i !map | |
16 | - | done; |
16 | + | done |
17 | ); | |
18 | find n !map |