This commit is contained in:
Justin Ethier 2019-01-31 13:33:05 -05:00
parent 1dc3e8324d
commit 7d1855d6d4

View file

@ -25,17 +25,31 @@
(write (mfnc 1 1)) (newline) (write (mfnc 1 1)) (newline)
(write (mfnc 1 1)) (newline) (write (mfnc 1 1)) (newline)
; Original versions:
(define (ack m n) (define (ack m n)
(cond ((= m 0) (+ n 1)) (cond ((= m 0) (+ n 1))
((= n 0) (ack (- m 1) 1)) ((= n 0) (ack (- m 1) 1))
(else (ack (- m 1) (ack m (- n 1)))))) (else (ack (- m 1) (ack m (- n 1))))))
(write (define (fib n)
(ack 3 12)) (if (< n 2)
n
(+ (fib (- n 1))
(fib (- n 2)))))
(define mack (memoize _mack)) ; Fast versions:
(define (_mack m n) ;(define ack (memoize _ack))
(cond ((= m 0) (+ n 1)) ;(define (_ack m n)
((= n 0) (mack (- m 1) 1)) ; (cond ((= m 0) (+ n 1))
(else (mack (- m 1) (mack m (- n 1)))))) ; ((= n 0) (ack (- m 1) 1))
(write ; (else (ack (- m 1) (ack m (- n 1))))))
(_mack 3 12)) ;
;(define fib (memoize _fib))
;(define (_fib n)
; (if (< n 2)
; n
; (+ (fib (- n 1))
; (fib (- n 2)))))
(write (ack 3 12))
(newline)
(write (fib 40))