Ubuntu Pastebin

Paste from s at Tue, 22 Dec 2015 10:16:41 +0000

Download as text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
(define (fib n)
  (call/cc (lambda (k)
	     (if (= n 0) (k 0)
	       (if (< n 3) (k 1)
		 (let ((m n) (k2 0) (a 0) (b 1) (c 1))
		   (call/cc (lambda (s) (set! k2 s)))
		   (if (> m 2) (begin (set! a b)
				      (set! b c)
				      (set! c (+ a b))
				      (set! m (- m 1))
				      (k2 m))
		     (k c))))))))
Download as text