Or strictly speaking... (de Fibonacci (N) (let (Fib '(2 1 1)) (set Fib 2 (cdr Fib) 1 (cddr Fib) 1) (cond ((= N 0) 0) ((= N 1) (caddr Fib)) ((= N 2) (cadr Fib)) (T (do (- N 3) (rot Fib) (set Fib (+ (cadr Fib) (caddr Fib))) ) (car Fib)) ) ) )
/Lindsay On Sat, Mar 11, 2017 at 11:20 AM, Lindsay John Lawrence < lawrence.lindsayj...@gmail.com> wrote: > Nm... After tinkering in the debugger.. using 'pp etc.. > I get it. I am still getting the (= code data) in picolisp. > > This gives the results I wanted. > > (de Fibonacci (N) > (let (Fib '(1 1 0) R 0) > (do N > (rot Fib) > (set Fib (+ (cadr Fib) (caddr Fib))) > ) > (setq R (car Fib)) > (set Fib 1 (cdr Fib) 1 (cddr Fib) 0) > R > ) ) > > Now I can write... > > : (Fibonacci 1) > -> 2 > : (Fibonacci 10) > -> 144 > : (bench (nil (Fibonacci 100000))) > 3.388 sec > : (length (chop (Fibonacci 100000))) > -> 20899 digits! > > Picolisp bignums are awesome! > > /Lindsay > > >