From bcdec4127662fe11fdd294b48d1f4ebf152761f9 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 30 Jan 2019 16:43:49 -0500 Subject: [PATCH] Added (ack) --- memo.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/memo.scm b/memo.scm index af3d45da..5fd09032 100644 --- a/memo.scm +++ b/memo.scm @@ -24,3 +24,18 @@ (write (mfnc 1 1)) (newline) (write (mfnc 1 1)) (newline) + +(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 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))