PasteRack.org
Paste # 54000
2019-04-11 09:39:00

Fork as a new paste.

Paste viewed 139 times.


Embed:

  1. #lang racket/base
  2.  
  3. (define (fib/l n l)
  4.   (cond
  5.     [(<= n 1) (l 1)]
  6.     [else (fib/l (- n 1)
  7.                  (lambda (v) (fibSecondL v n l)))]))
  8.  
  9. (define (fibSecondL v n next-l)
  10.   (fib/l (- n 2) (lambda (second-v) (sumL v second-v  next-l))))
  11.  
  12. (define (sumL first-val second-val next-l)
  13.   (next-l (+ first-val second-val)))
  14.  
  15. (fib/l 5 (lambda (n) n))
  16.  
  17. (define (fib n)
  18.   (cond
  19.     [(<= n 1) 1]
  20.     [else (+ (fib (- n 1)) (fib (- n 2)))]))
  21.  
  22. (time (fib/l 35 (lambda (n) n)))
  23. (time (fib 35))

=>

8

cpu time: 1634 real time: 1688 gc time: 31

14930352

cpu time: 634 real time: 653 gc time: 0

14930352