<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>ackermann.ocaml</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Hi, </FONT>
</P>

<P><FONT SIZE=2>this version is a little bit faster, because it avoids a tuple construction in the </FONT>
<BR><FONT SIZE=2>match. </FONT>
</P>

<P><FONT SIZE=2>let rec ack m n = </FONT>
<BR><FONT SIZE=2>if m = 0 then n+1 </FONT>
<BR><FONT SIZE=2>else if n = 0 then ack (m-1) 1 </FONT>
<BR><FONT SIZE=2>else ack (m-1) (ack m (n-1));; </FONT>
</P>

<P><FONT SIZE=2>let n = if Array.length Sys.argv &gt; 1 then int_of_string Sys.argv.(1) else 1 in </FONT>
<BR><FONT SIZE=2>Printf.printf &quot;Ack(3,%d): %d\n&quot; n (ack 3 n) </FONT>
</P>

<P><FONT SIZE=2>regards, </FONT>
<BR><FONT SIZE=2>Christoph Bauer </FONT>
</P>

</BODY>
</HTML>