<p dir="ltr"><br>
Hi Darren,</p>
<p dir="ltr">Am 30.09.2012 09:02 schrieb &quot;Darren Grant&quot;<br>
&gt; This is exactly the kind of recursive function I was trying to set up<br>
&gt; with map, but didn&#39;t get the algorithm right. I expect the immutable<br>
&gt; Array must be much lighter weight than the immutable Map.</p>
<p dir="ltr">using an array as cache is the fastes approach.</p>
<p dir="ltr">I implemented a C++ version using an array (~0.03s) which is orders of magnitude faster than the map version (~2.5s).</p>
<p dir="ltr">I also tried a Haskell version with an unboxed, mutable Data.Vector using explict tail recursion, but this version was only 2 times faster than a lazy Data.Vector version (~0.4s).</p>
<p dir="ltr">I would like to see a Haskell version which is in the same ballpark than the fastes C++ version, but still quite high level.<br></p>
<p dir="ltr">Greetings,<br>
Daniel</p>