From 7d1855d6d46f14b6afb8b6fd78f3b881d8a490fc Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 31 Jan 2019 13:33:05 -0500 Subject: [PATCH] WIP --- memo.scm | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/memo.scm b/memo.scm index 5fd09032..a07136a7 100644 --- a/memo.scm +++ b/memo.scm @@ -25,17 +25,31 @@ (write (mfnc 1 1)) (newline) (write (mfnc 1 1)) (newline) +; Original versions: (define (ack m n) (cond ((= m 0) (+ n 1)) ((= n 0) (ack (- m 1) 1)) (else (ack (- m 1) (ack m (- n 1)))))) -(write - (ack 3 12)) +(define (fib n) + (if (< n 2) + n + (+ (fib (- n 1)) + (fib (- n 2))))) -(define mack (memoize _mack)) -(define (_mack m n) - (cond ((= m 0) (+ n 1)) - ((= n 0) (mack (- m 1) 1)) - (else (mack (- m 1) (mack m (- n 1)))))) -(write - (_mack 3 12)) +; Fast versions: +;(define ack (memoize _ack)) +;(define (_ack m n) +; (cond ((= m 0) (+ n 1)) +; ((= n 0) (ack (- m 1) 1)) +; (else (ack (- m 1) (ack m (- n 1)))))) +; +;(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))