Modified: websites/staging/thrift/trunk/content/tutorial/ocaml.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/ocaml.html (original)
+++ websites/staging/thrift/trunk/content/tutorial/ocaml.html Sat Mar 22 
18:57:03 2014
@@ -87,140 +87,124 @@
 </ol>
 <h3 id="prerequisites">Prerequisites</h3>
 <h3 id="client">Client</h3>
-<div class="codehilite"><pre>  <span class="p">:::</span><span 
class="n">cpp</span>
-<span class="n">open</span> <span class="n">Arg</span>
+<p><div class="codehilite"><pre><span class="n">open</span> <span 
class="n">Arg</span>
 <span class="n">open</span> <span class="n">Thrift</span>
 <span class="n">open</span> <span class="n">Tutorial_types</span>
-<span class="n">open</span> <span class="n">Shared_types</span>
-
-<span class="n">exception</span> <span class="n">Die</span><span 
class="p">;;</span>
-<span class="n">let</span> <span class="n">sod</span> <span class="p">=</span> 
<span class="k">function</span>
-    <span class="n">Some</span> <span class="n">v</span> <span 
class="o">-&amp;</span><span class="n">gt</span><span class="p">;</span> <span 
class="n">v</span>
-  <span class="o">|</span> <span class="n">None</span> <span 
class="o">-&amp;</span><span class="n">gt</span><span class="p">;</span> <span 
class="n">raise</span> <span class="n">Die</span><span class="p">;;</span>
-
-<span class="n">type</span> <span class="n">connection</span> <span 
class="p">=</span> <span class="p">{</span>
-  <span class="n">trans</span> <span class="p">:</span> <span 
class="n">Transport</span><span class="p">.</span><span class="n">t</span> 
<span class="p">;</span>
-  <span class="n">proto</span> <span class="p">:</span> <span 
class="n">Thrift</span><span class="p">.</span><span 
class="n">Protocol</span><span class="p">.</span><span class="n">t</span><span 
class="p">;</span>
-  <span class="n">calc</span> <span class="p">:</span> <span 
class="n">Calculator</span><span class="p">.</span><span 
class="n">client</span> <span class="p">;</span>
-<span class="p">}</span>
-
-<span class="n">let</span> <span class="n">connect</span> <span 
class="o">~</span><span class="n">host</span> <span class="n">port</span> <span 
class="p">=</span>
-  <span class="n">let</span> <span class="n">tx</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">TSocket</span><span class="p">.</span><span class="n">t</span> <span 
class="n">host</span> <span class="n">port</span> <span class="n">in</span>
-  <span class="n">let</span> <span class="n">proto</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">TBinaryProtocol</span><span class="p">.</span><span 
class="n">t</span> <span class="n">tx</span> <span class="n">in</span>
-  <span class="n">let</span> <span class="n">calc</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">Calculator</span><span class="p">.</span><span 
class="n">client</span> <span class="n">proto</span> <span 
class="n">proto</span> <span class="n">in</span>
-    <span class="n">tx</span>#<span class="n">opn</span><span 
class="p">;</span>
-    <span class="p">{</span> <span class="n">trans</span> <span 
class="p">=</span> <span class="n">tx</span> <span class="p">;</span> <span 
class="n">proto</span> <span class="p">=</span> <span 
class="n">proto</span><span class="p">;</span> <span class="n">calc</span> 
<span class="p">=</span> <span class="n">calc</span> <span class="p">}</span>
-<span class="p">;;</span>
-
-<span class="n">let</span> <span class="n">doclient</span> <span 
class="p">()</span> <span class="p">=</span>
-  <span class="n">let</span> <span class="n">cli</span> <span 
class="p">=</span> <span class="n">connect</span> <span class="o">~</span><span 
class="n">host</span><span class="p">:</span><span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span>127<span class="p">.</span>0<span 
class="p">.</span>0<span class="p">.</span>1<span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span> 9090 <span class="n">in</span>
+<span class="n">open</span> <span class="n">Shared_types</span></p>
+<p><span class="n">exception</span> <span class="n">Die</span><span 
class="p">;;</span>
+<span class="n">let</span> <span class="n">sod</span> <span class="o">=</span> 
<span class="n">function</span>
+    <span class="n">Some</span> <span class="n">v</span> <span 
class="o">-&gt;</span> <span class="n">v</span>
+  <span class="o">|</span> <span class="n">None</span> <span 
class="o">-&gt;</span> <span class="n">raise</span> <span 
class="n">Die</span><span class="p">;;</span></p>
+<p><span class="n">type</span> <span class="n">connection</span> <span 
class="o">=</span> <span class="p">{</span>
+  <span class="n">trans</span> <span class="o">:</span> <span 
class="n">Transport</span><span class="p">.</span><span class="n">t</span> 
<span class="p">;</span>
+  <span class="n">proto</span> <span class="o">:</span> <span 
class="n">Thrift</span><span class="p">.</span><span 
class="n">Protocol</span><span class="p">.</span><span class="n">t</span><span 
class="p">;</span>
+  <span class="n">calc</span> <span class="o">:</span> <span 
class="n">Calculator</span><span class="p">.</span><span 
class="n">client</span> <span class="p">;</span>
+<span class="p">}</span></p>
+<p><span class="n">let</span> <span class="n">connect</span> <span 
class="o">~</span><span class="n">host</span> <span class="n">port</span> <span 
class="o">=</span>
+  <span class="n">let</span> <span class="n">tx</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">TSocket</span><span class="p">.</span><span class="n">t</span> <span 
class="n">host</span> <span class="n">port</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">proto</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">TBinaryProtocol</span><span class="p">.</span><span 
class="n">t</span> <span class="n">tx</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">calc</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">Calculator</span><span class="p">.</span><span 
class="n">client</span> <span class="n">proto</span> <span 
class="n">proto</span> <span class="n">in</span>
+    <span class="n">tx</span><span class="err">#</span><span 
class="n">opn</span><span class="p">;</span>
+    <span class="p">{</span> <span class="n">trans</span> <span 
class="o">=</span> <span class="n">tx</span> <span class="p">;</span> <span 
class="n">proto</span> <span class="o">=</span> <span 
class="n">proto</span><span class="p">;</span> <span class="n">calc</span> 
<span class="o">=</span> <span class="n">calc</span> <span class="p">}</span>
+<span class="p">;;</span></p>
+<p><span class="n">let</span> <span class="n">doclient</span> <span 
class="p">()</span> <span class="o">=</span>
+  <span class="n">let</span> <span class="n">cli</span> <span 
class="o">=</span> <span class="n">connect</span> <span class="o">~</span><span 
class="nl">host:</span><span class="s">&quot;127.0.0.1&quot;</span> <span 
class="mi">9090</span> <span class="n">in</span>
   <span class="k">try</span>
-    <span class="n">cli</span><span class="p">.</span><span 
class="n">calc</span>#<span class="n">ping</span> <span class="p">;</span>
-    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">ping</span><span 
class="p">()</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;</span> <span 
class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span> 
<span class="p">;</span>
-    <span class="p">(</span><span class="n">let</span> <span 
class="n">sum</span> <span class="p">=</span> <span class="n">cli</span><span 
class="p">.</span><span class="n">calc</span>#<span class="n">add</span> <span 
class="p">(</span><span class="n">Int32</span><span class="p">.</span><span 
class="n">of_int</span> 1<span class="p">)</span> <span class="p">(</span><span 
class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> 
1<span class="p">)</span> <span class="n">in</span>
-       <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span>1<span class="o">+</span>1<span 
class="p">=</span><span class="c">%ld\n&amp;quot; sum ;</span>
+    <span class="n">cli</span><span class="p">.</span><span 
class="n">calc</span><span class="err">#</span><span class="n">ping</span> 
<span class="p">;</span>
+    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;ping()</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="p">;</span> 
<span class="n">flush</span> <span class="n">stdout</span> <span 
class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span 
class="n">sum</span> <span class="o">=</span> <span class="n">cli</span><span 
class="p">.</span><span class="n">calc</span><span class="err">#</span><span 
class="n">add</span> <span class="p">(</span><span class="n">Int32</span><span 
class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span 
class="p">)</span> <span class="p">(</span><span class="n">Int32</span><span 
class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span 
class="p">)</span> <span class="n">in</span>
+       <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;1+1=%ld</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="n">sum</span> 
<span class="p">;</span>
        <span class="n">flush</span> <span class="n">stdout</span><span 
class="p">)</span> <span class="p">;</span>
-    <span class="p">(</span><span class="n">let</span> <span 
class="n">w</span> <span class="p">=</span> <span class="n">new</span> <span 
class="n">work</span> <span class="n">in</span>
-       <span class="n">w</span>#<span class="n">set_op</span> <span 
class="n">Operation</span><span class="p">.</span><span class="n">DIVIDE</span> 
<span class="p">;</span>
-       <span class="n">w</span>#<span class="n">set_num1</span> <span 
class="p">(</span><span class="n">Int32</span><span class="p">.</span><span 
class="n">of_int</span> 1<span class="p">)</span> <span class="p">;</span>
-       <span class="n">w</span>#<span class="n">set_num2</span> <span 
class="p">(</span><span class="n">Int32</span><span class="p">.</span><span 
class="n">of_int</span> 0<span class="p">)</span> <span class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span 
class="n">w</span> <span class="o">=</span> <span class="k">new</span> <span 
class="n">work</span> <span class="n">in</span>
+       <span class="n">w</span><span class="err">#</span><span 
class="n">set_op</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">DIVIDE</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span 
class="n">set_num1</span> <span class="p">(</span><span 
class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> 
<span class="mi">1</span><span class="p">)</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span 
class="n">set_num2</span> <span class="p">(</span><span 
class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> 
<span class="mi">0</span><span class="p">)</span> <span class="p">;</span>
        <span class="k">try</span>
-     <span class="n">let</span> <span class="n">quotient</span> <span 
class="p">=</span> <span class="n">cli</span><span class="p">.</span><span 
class="n">calc</span>#<span class="n">calculate</span> <span 
class="p">(</span><span class="n">Int32</span><span class="p">.</span><span 
class="n">of_int</span> 1<span class="p">)</span> <span class="n">w</span> 
<span class="n">in</span>
-       <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">Whoa</span>? <span 
class="n">We</span> <span class="n">can</span> <span class="n">divide</span> 
<span class="n">by</span> <span class="n">zero</span>!<span 
class="o">\</span><span class="n">n</span><span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span> <span class="p">;</span> <span 
class="n">flush</span> <span class="n">stdout</span>
-       <span class="n">with</span> <span class="n">InvalidOperation</span> 
<span class="n">io</span> <span class="o">-&amp;</span><span 
class="n">gt</span><span class="p">;</span>
-     <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span 
class="n">InvalidOperation</span><span class="p">:</span> <span 
class="c">%s\n&amp;quot; io#grab_why ; flush stdout) ;</span>
-    <span class="p">(</span><span class="n">let</span> <span 
class="n">w</span> <span class="p">=</span> <span class="n">new</span> <span 
class="n">work</span> <span class="n">in</span>
-       <span class="n">w</span>#<span class="n">set_op</span> <span 
class="n">Operation</span><span class="p">.</span><span 
class="n">SUBTRACT</span> <span class="p">;</span>
-       <span class="n">w</span>#<span class="n">set_num1</span> <span 
class="p">(</span><span class="n">Int32</span><span class="p">.</span><span 
class="n">of_int</span> 15<span class="p">)</span> <span class="p">;</span>
-       <span class="n">w</span>#<span class="n">set_num2</span> <span 
class="p">(</span><span class="n">Int32</span><span class="p">.</span><span 
class="n">of_int</span> 10<span class="p">)</span> <span class="p">;</span>
-       <span class="n">let</span> <span class="n">diff</span> <span 
class="p">=</span> <span class="n">cli</span><span class="p">.</span><span 
class="n">calc</span>#<span class="n">calculate</span> <span 
class="p">(</span><span class="n">Int32</span><span class="p">.</span><span 
class="n">of_int</span> 1<span class="p">)</span> <span class="n">w</span> 
<span class="n">in</span>
-     <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span>15<span class="o">-</span>10<span 
class="p">=</span><span class="c">%ld\n&amp;quot; diff ; flush stdout) ;</span>
-    <span class="p">(</span><span class="n">let</span> <span 
class="n">ss</span> <span class="p">=</span> <span class="n">cli</span><span 
class="p">.</span><span class="n">calc</span>#<span class="n">getStruct</span> 
<span class="p">(</span><span class="n">Int32</span><span 
class="p">.</span><span class="n">of_int</span> 1<span class="p">)</span> <span 
class="n">in</span>
-       <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">Check</span> <span 
class="nb">log</span><span class="p">:</span> <span class="c">%s\n&amp;quot; 
ss#grab_value ; flush stdout) ;</span>
-    <span class="n">cli</span><span class="p">.</span><span 
class="n">trans</span>#<span class="n">close</span>
-  <span class="n">with</span> <span class="n">Transport</span><span 
class="p">.</span><span class="n">E</span> <span class="p">(</span><span 
class="n">_</span><span class="p">,</span><span class="n">what</span><span 
class="p">)</span> <span class="o">-&amp;</span><span class="n">gt</span><span 
class="p">;</span>
-    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">ERROR</span><span 
class="p">:</span> <span class="c">%s\n&amp;quot; what ; flush stdout</span>
-<span class="p">;;</span>
-
-<span class="n">doclient</span><span class="p">();;</span>
-</pre></div>
-
-
+     <span class="n">let</span> <span class="n">quotient</span> <span 
class="o">=</span> <span class="n">cli</span><span class="p">.</span><span 
class="n">calc</span><span class="err">#</span><span class="n">calculate</span> 
<span class="p">(</span><span class="n">Int32</span><span 
class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span 
class="p">)</span> <span class="n">w</span> <span class="n">in</span>
+       <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;Whoa? We can divide by 
zero!</span><span class="se">\n</span><span class="s">&quot;</span> <span 
class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span>
+       <span class="n">with</span> <span class="n">InvalidOperation</span> 
<span class="n">io</span> <span class="o">-&gt;</span>
+     <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;InvalidOperation: %s</span><span 
class="se">\n</span><span class="s">&quot;</span> <span 
class="n">io</span><span class="err">#</span><span class="n">grab_why</span> 
<span class="p">;</span> <span class="n">flush</span> <span 
class="n">stdout</span><span class="p">)</span> <span class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span 
class="n">w</span> <span class="o">=</span> <span class="k">new</span> <span 
class="n">work</span> <span class="n">in</span>
+       <span class="n">w</span><span class="err">#</span><span 
class="n">set_op</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">SUBTRACT</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span 
class="n">set_num1</span> <span class="p">(</span><span 
class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> 
<span class="mi">15</span><span class="p">)</span> <span class="p">;</span>
+       <span class="n">w</span><span class="err">#</span><span 
class="n">set_num2</span> <span class="p">(</span><span 
class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> 
<span class="mi">10</span><span class="p">)</span> <span class="p">;</span>
+       <span class="n">let</span> <span class="n">diff</span> <span 
class="o">=</span> <span class="n">cli</span><span class="p">.</span><span 
class="n">calc</span><span class="err">#</span><span class="n">calculate</span> 
<span class="p">(</span><span class="n">Int32</span><span 
class="p">.</span><span class="n">of_int</span> <span class="mi">1</span><span 
class="p">)</span> <span class="n">w</span> <span class="n">in</span>
+     <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;15-10=%ld</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="n">diff</span> 
<span class="p">;</span> <span class="n">flush</span> <span 
class="n">stdout</span><span class="p">)</span> <span class="p">;</span>
+    <span class="p">(</span><span class="n">let</span> <span 
class="n">ss</span> <span class="o">=</span> <span class="n">cli</span><span 
class="p">.</span><span class="n">calc</span><span class="err">#</span><span 
class="n">getStruct</span> <span class="p">(</span><span 
class="n">Int32</span><span class="p">.</span><span class="n">of_int</span> 
<span class="mi">1</span><span class="p">)</span> <span class="n">in</span>
+       <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;Check log: %s</span><span 
class="se">\n</span><span class="s">&quot;</span> <span 
class="n">ss</span><span class="err">#</span><span class="n">grab_value</span> 
<span class="p">;</span> <span class="n">flush</span> <span 
class="n">stdout</span><span class="p">)</span> <span class="p">;</span>
+    <span class="n">cli</span><span class="p">.</span><span 
class="n">trans</span><span class="err">#</span><span class="n">close</span>
+  <span class="n">with</span> <span class="n">Transport</span><span 
class="p">.</span><span class="n">E</span> <span class="p">(</span><span 
class="n">_</span><span class="p">,</span><span class="n">what</span><span 
class="p">)</span> <span class="o">-&gt;</span>
+    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;ERROR: %s</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="n">what</span> 
<span class="p">;</span> <span class="n">flush</span> <span 
class="n">stdout</span>
+<span class="p">;;</span></p>
+<p><span class="n">doclient</span><span class="p">();;</span>
+</pre></div></p>
 <h3 id="server">Server</h3>
-<div class="codehilite"><pre>  <span class="p">:::</span><span 
class="n">cpp</span>
-<span class="n">open</span> <span class="n">Arg</span>
+<p><div class="codehilite"><pre><span class="n">open</span> <span 
class="n">Arg</span>
 <span class="n">open</span> <span class="n">Thrift</span>
 <span class="n">open</span> <span class="n">Tutorial_types</span>
-<span class="n">open</span> <span class="n">Shared_types</span>
-
-<span class="n">exception</span> <span class="n">Die</span><span 
class="p">;;</span>
-<span class="n">let</span> <span class="n">sod</span> <span class="p">=</span> 
<span class="k">function</span>
-    <span class="n">Some</span> <span class="n">v</span> <span 
class="o">-&amp;</span><span class="n">gt</span><span class="p">;</span> <span 
class="n">v</span>
-  <span class="o">|</span> <span class="n">None</span> <span 
class="o">-&amp;</span><span class="n">gt</span><span class="p">;</span> <span 
class="n">raise</span> <span class="n">Die</span><span class="p">;;</span>
-
-<span class="n">class</span> <span class="n">calc_handler</span> <span 
class="p">=</span>
+<span class="n">open</span> <span class="n">Shared_types</span></p>
+<p><span class="n">exception</span> <span class="n">Die</span><span 
class="p">;;</span>
+<span class="n">let</span> <span class="n">sod</span> <span class="o">=</span> 
<span class="n">function</span>
+    <span class="n">Some</span> <span class="n">v</span> <span 
class="o">-&gt;</span> <span class="n">v</span>
+  <span class="o">|</span> <span class="n">None</span> <span 
class="o">-&gt;</span> <span class="n">raise</span> <span 
class="n">Die</span><span class="p">;;</span></p>
+<p><span class="k">class</span> <span class="nc">calc_handler</span> <span 
class="o">=</span>
 <span class="n">object</span> <span class="p">(</span><span 
class="n">self</span><span class="p">)</span>
   <span class="n">inherit</span> <span class="n">Calculator</span><span 
class="p">.</span><span class="n">iface</span>
-  <span class="n">val</span> <span class="nb">log</span> <span 
class="p">=</span> <span class="n">Hashtbl</span><span class="p">.</span><span 
class="n">create</span> 23
-  <span class="n">method</span> <span class="n">ping</span>  <span 
class="p">=</span> <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">ping</span><span 
class="p">()</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;</span> <span 
class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span>
-  <span class="n">method</span> <span class="n">add</span> <span 
class="n">a</span> <span class="n">b</span> <span class="p">=</span>
-    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span><span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">add</span><span 
class="p">(</span><span class="c">%ld,%ld)\n&amp;quot; (sod a) (sod b); flush 
stdout ;</span>
+  <span class="n">val</span> <span class="n">log</span> <span 
class="o">=</span> <span class="n">Hashtbl</span><span class="p">.</span><span 
class="n">create</span> <span class="mi">23</span>
+  <span class="n">method</span> <span class="n">ping</span>  <span 
class="o">=</span> <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;ping()</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="p">;</span> 
<span class="n">flush</span> <span class="n">stdout</span>
+  <span class="n">method</span> <span class="n">add</span> <span 
class="n">a</span> <span class="n">b</span> <span class="o">=</span>
+    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span><span class="s">&quot;add(%ld,%ld)</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="p">(</span><span 
class="n">sod</span> <span class="n">a</span><span class="p">)</span> <span 
class="p">(</span><span class="n">sod</span> <span class="n">b</span><span 
class="p">);</span> <span class="n">flush</span> <span class="n">stdout</span> 
<span class="p">;</span>
     <span class="n">Int32</span><span class="p">.</span><span 
class="n">add</span> <span class="p">(</span><span class="n">sod</span> <span 
class="n">a</span><span class="p">)</span> <span class="p">(</span><span 
class="n">sod</span> <span class="n">b</span><span class="p">)</span>
-  <span class="n">method</span> <span class="n">calculate</span> <span 
class="n">logid</span> <span class="n">w</span> <span class="p">=</span>
-    <span class="n">let</span> <span class="n">w</span> <span 
class="p">=</span> <span class="n">sod</span> <span class="n">w</span> <span 
class="n">in</span>
-      <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span 
class="n">calculate</span><span class="p">(</span><span 
class="c">%ld,{%ld,%ld,%ld})\n&amp;quot; (sod logid) (Operation.to_i w#grab_op) 
w#grab_num1 w#grab_num2; flush stdout ;</span>
-    <span class="n">let</span> <span class="n">rv</span> <span 
class="p">=</span>
-      <span class="n">match</span> <span class="n">w</span>#<span 
class="n">grab_op</span> <span class="n">with</span>
-      <span class="n">Operation</span><span class="p">.</span><span 
class="n">ADD</span> <span class="o">-&amp;</span><span 
class="n">gt</span><span class="p">;</span>
-        <span class="n">Int32</span><span class="p">.</span><span 
class="n">add</span> <span class="n">w</span>#<span class="n">grab_num1</span> 
<span class="n">w</span>#<span class="n">grab_num2</span>
-    <span class="o">|</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">SUBTRACT</span> <span 
class="o">-&amp;</span><span class="n">gt</span><span class="p">;</span>
-        <span class="n">Int32</span><span class="p">.</span><span 
class="n">sub</span> <span class="n">w</span>#<span class="n">grab_num1</span> 
<span class="n">w</span>#<span class="n">grab_num2</span>
-    <span class="o">|</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">MULTIPLY</span> <span 
class="o">-&amp;</span><span class="n">gt</span><span class="p">;</span>
-        <span class="n">Int32</span><span class="p">.</span><span 
class="n">mul</span> <span class="n">w</span>#<span class="n">grab_num1</span> 
<span class="n">w</span>#<span class="n">grab_num2</span>
-    <span class="o">|</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">DIVIDE</span> <span 
class="o">-&amp;</span><span class="n">gt</span><span class="p">;</span>
-        <span class="k">if</span> <span class="n">w</span>#<span 
class="n">grab_num2</span> <span class="p">=</span> <span 
class="n">Int32</span><span class="p">.</span><span class="n">zero</span> <span 
class="n">then</span>
-          <span class="n">let</span> <span class="n">io</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">invalidOperation</span> <span class="n">in</span>
-        <span class="n">io</span>#<span class="n">set_what</span> <span 
class="p">(</span><span class="n">Operation</span><span class="p">.</span><span 
class="n">to_i</span> <span class="n">w</span>#<span 
class="n">grab_op</span><span class="p">)</span> <span class="p">;</span>
-        <span class="n">io</span>#<span class="n">set_why</span> <span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;</span><span 
class="n">Cannot</span> <span class="n">divide</span> <span class="n">by</span> 
0<span class="o">&amp;</span><span class="n">quot</span><span 
class="p">;</span> <span class="p">;</span>
+  <span class="n">method</span> <span class="n">calculate</span> <span 
class="n">logid</span> <span class="n">w</span> <span class="o">=</span>
+    <span class="n">let</span> <span class="n">w</span> <span 
class="o">=</span> <span class="n">sod</span> <span class="n">w</span> <span 
class="n">in</span>
+      <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span 
class="s">&quot;calculate(%ld,{%ld,%ld,%ld})</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="p">(</span><span 
class="n">sod</span> <span class="n">logid</span><span class="p">)</span> <span 
class="p">(</span><span class="n">Operation</span><span class="p">.</span><span 
class="n">to_i</span> <span class="n">w</span><span class="err">#</span><span 
class="n">grab_op</span><span class="p">)</span> <span class="n">w</span><span 
class="err">#</span><span class="n">grab_num1</span> <span 
class="n">w</span><span class="err">#</span><span 
class="n">grab_num2</span><span class="p">;</span> <span class="n">flush</span> 
<span class="n">stdout</span> <span class="p">;</span>
+    <span class="n">let</span> <span class="n">rv</span> <span 
class="o">=</span>
+      <span class="n">match</span> <span class="n">w</span><span 
class="err">#</span><span class="n">grab_op</span> <span class="n">with</span>
+      <span class="n">Operation</span><span class="p">.</span><span 
class="n">ADD</span> <span class="o">-&gt;</span>
+        <span class="n">Int32</span><span class="p">.</span><span 
class="n">add</span> <span class="n">w</span><span class="err">#</span><span 
class="n">grab_num1</span> <span class="n">w</span><span 
class="err">#</span><span class="n">grab_num2</span>
+    <span class="o">|</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">SUBTRACT</span> <span class="o">-&gt;</span>
+        <span class="n">Int32</span><span class="p">.</span><span 
class="n">sub</span> <span class="n">w</span><span class="err">#</span><span 
class="n">grab_num1</span> <span class="n">w</span><span 
class="err">#</span><span class="n">grab_num2</span>
+    <span class="o">|</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">MULTIPLY</span> <span class="o">-&gt;</span>
+        <span class="n">Int32</span><span class="p">.</span><span 
class="n">mul</span> <span class="n">w</span><span class="err">#</span><span 
class="n">grab_num1</span> <span class="n">w</span><span 
class="err">#</span><span class="n">grab_num2</span>
+    <span class="o">|</span> <span class="n">Operation</span><span 
class="p">.</span><span class="n">DIVIDE</span> <span class="o">-&gt;</span>
+        <span class="k">if</span> <span class="n">w</span><span 
class="err">#</span><span class="n">grab_num2</span> <span class="o">=</span> 
<span class="n">Int32</span><span class="p">.</span><span class="n">zero</span> 
<span class="n">then</span>
+          <span class="n">let</span> <span class="n">io</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">invalidOperation</span> <span class="n">in</span>
+        <span class="n">io</span><span class="err">#</span><span 
class="n">set_what</span> <span class="p">(</span><span 
class="n">Operation</span><span class="p">.</span><span class="n">to_i</span> 
<span class="n">w</span><span class="err">#</span><span 
class="n">grab_op</span><span class="p">)</span> <span class="p">;</span>
+        <span class="n">io</span><span class="err">#</span><span 
class="n">set_why</span> <span class="s">&quot;Cannot divide by 0&quot;</span> 
<span class="p">;</span>
         <span class="n">raise</span> <span class="p">(</span><span 
class="n">InvalidOperation</span> <span class="n">io</span><span 
class="p">)</span>
         <span class="k">else</span>
-          <span class="n">Int32</span><span class="p">.</span><span 
class="n">div</span> <span class="n">w</span>#<span class="n">grab_num1</span> 
<span class="n">w</span>#<span class="n">grab_num2</span> <span 
class="n">in</span>
-
-    <span class="n">let</span> <span class="n">ss</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">sharedStruct</span> <span class="n">in</span>
-      <span class="n">ss</span>#<span class="n">set_key</span> <span 
class="p">(</span><span class="n">sod</span> <span class="n">logid</span><span 
class="p">)</span> <span class="p">;</span>
-    <span class="n">let</span> <span class="n">buffer</span> <span 
class="p">=</span> <span class="n">Int32</span><span class="p">.</span><span 
class="n">to_string</span> <span class="n">rv</span> <span class="n">in</span>
-      <span class="n">ss</span>#<span class="n">set_value</span> <span 
class="n">buffer</span> <span class="p">;</span>
-      <span class="n">Hashtbl</span><span class="p">.</span><span 
class="n">add</span> <span class="nb">log</span> <span class="p">(</span><span 
class="n">sod</span> <span class="n">logid</span><span class="p">)</span> <span 
class="n">ss</span> <span class="p">;</span>
-      <span class="n">rv</span>
-
-  <span class="n">method</span> <span class="n">zip</span> <span 
class="p">=</span>
-    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">zip</span><span 
class="p">()</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;;</span> 
<span class="n">flush</span> <span class="n">stdout</span>
-
-  <span class="n">method</span> <span class="n">getStruct</span> <span 
class="n">logid</span> <span class="p">=</span>
-    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span 
class="n">getStruct</span><span class="p">(</span><span 
class="c">%ld)\n&amp;quot; (sod logid) ; flush stdout ;</span>
-    <span class="n">Hashtbl</span><span class="p">.</span><span 
class="nb">find</span> <span class="nb">log</span> <span 
class="p">(</span><span class="n">sod</span> <span class="n">logid</span><span 
class="p">)</span>
+          <span class="n">Int32</span><span class="p">.</span><span 
class="n">div</span> <span class="n">w</span><span class="err">#</span><span 
class="n">grab_num1</span> <span class="n">w</span><span 
class="err">#</span><span class="n">grab_num2</span> <span 
class="n">in</span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>let<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ss<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;k&quot;</span><span class="nt">&gt;</span>new<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>sharedStruct<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</
 span>in<span class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ss<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;err&quot;</span><span class="nt">&gt;</span>#<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>set_key<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>sod<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>logid<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot
 ;p&quot;</span><span class="nt">&gt;</span>)<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>let<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>buffer<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>=<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>Int32<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>to_string<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span>
  <span class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>rv<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>in<span 
class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ss<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;err&quot;</span><span class="nt">&gt;</span>#<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>set_value<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>buffer<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span 
class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>Hashtbl<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>.<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>add<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>log<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>sod<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span
 ><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span>logid<span 
 >class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
 >class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span 
 >class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
 >class="na">class=</span><span class="s">&quot;n&quot;</span><span 
 >class="nt">&gt;</span>ss<span class="nt">&lt;/span&gt;</span> <span 
 >class="nt">&lt;span</span> <span class="na">class=</span><span 
 >class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span 
 >class="nt">&lt;/span&gt;</span>
+  <span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>rv<span 
class="nt">&lt;/span&gt;</span>
+</pre></div>
 
-<span class="k">end</span>
 
-<span class="n">let</span> <span class="n">doserver</span> <span 
class="p">()</span> <span class="p">=</span>
-  <span class="n">let</span> <span class="n">h</span> <span class="p">=</span> 
<span class="n">new</span> <span class="n">calc_handler</span> <span 
class="n">in</span>
-  <span class="n">let</span> <span class="n">proc</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">Calculator</span><span class="p">.</span><span 
class="n">processor</span> <span class="n">h</span> <span class="n">in</span>
-  <span class="n">let</span> <span class="n">port</span> <span 
class="p">=</span> 9090 <span class="n">in</span>
-  <span class="n">let</span> <span class="n">pf</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">TBinaryProtocol</span><span class="p">.</span><span 
class="n">factory</span> <span class="n">in</span>
-  <span class="n">let</span> <span class="n">server</span> <span 
class="p">=</span> <span class="n">new</span> <span 
class="n">TThreadedServer</span><span class="p">.</span><span class="n">t</span>
+<p><span class="n">method</span> <span class="n">zip</span> <span 
class="o">=</span>
+    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;zip()</span><span 
class="se">\n</span><span class="s">&quot;</span><span class="p">;</span> <span 
class="n">flush</span> <span class="n">stdout</span></p>
+<p><span class="n">method</span> <span class="n">getStruct</span> <span 
class="n">logid</span> <span class="o">=</span>
+    <span class="n">Printf</span><span class="p">.</span><span 
class="n">printf</span> <span class="s">&quot;getStruct(%ld)</span><span 
class="se">\n</span><span class="s">&quot;</span> <span class="p">(</span><span 
class="n">sod</span> <span class="n">logid</span><span class="p">)</span> <span 
class="p">;</span> <span class="n">flush</span> <span class="n">stdout</span> 
<span class="p">;</span>
+    <span class="n">Hashtbl</span><span class="p">.</span><span 
class="n">find</span> <span class="n">log</span> <span class="p">(</span><span 
class="n">sod</span> <span class="n">logid</span><span class="p">)</span></p>
+<p><span class="n">end</span></p>
+<p><span class="n">let</span> <span class="n">doserver</span> <span 
class="p">()</span> <span class="o">=</span>
+  <span class="n">let</span> <span class="n">h</span> <span class="o">=</span> 
<span class="k">new</span> <span class="n">calc_handler</span> <span 
class="n">in</span>
+  <span class="n">let</span> <span class="n">proc</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">Calculator</span><span class="p">.</span><span 
class="n">processor</span> <span class="n">h</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">port</span> <span 
class="o">=</span> <span class="mi">9090</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">pf</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">TBinaryProtocol</span><span class="p">.</span><span 
class="n">factory</span> <span class="n">in</span>
+  <span class="n">let</span> <span class="n">server</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">TThreadedServer</span><span class="p">.</span><span class="n">t</span>
          <span class="n">proc</span>
-         <span class="p">(</span><span class="n">new</span> <span 
class="n">TServerSocket</span><span class="p">.</span><span class="n">t</span> 
<span class="n">port</span><span class="p">)</span>
-         <span class="p">(</span><span class="n">new</span> <span 
class="n">Transport</span><span class="p">.</span><span 
class="n">factory</span><span class="p">)</span>
+         <span class="p">(</span><span class="k">new</span> <span 
class="n">TServerSocket</span><span class="p">.</span><span class="n">t</span> 
<span class="n">port</span><span class="p">)</span>
+         <span class="p">(</span><span class="k">new</span> <span 
class="n">Transport</span><span class="p">.</span><span 
class="n">factory</span><span class="p">)</span>
          <span class="n">pf</span>
          <span class="n">pf</span>
   <span class="n">in</span>
-    <span class="n">server</span>#<span class="n">serve</span>
-<span class="p">;;</span>
-
-<span class="n">doserver</span><span class="p">();;</span>
-</pre></div>
-
-
+    <span class="n">server</span><span class="err">#</span><span 
class="n">serve</span>
+<span class="p">;;</span></p>
+<p><span class="n">doserver</span><span class="p">();;</span>
+</pre></div></p>
 <h2 id="additional-information">Additional Information</h2>
           
        </div>


Reply via email to