View difference between Paste ID: ufh2VbfY and pNGu2eJg
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