It seems there is a very close correspondence between data structures
and functions in Haskell.  Your powersOfTwo function, since it gets
memoized automatically (is this the case for all functions of zero
arguments?), seems exactly like a data structure.  This harks back to
my Scheme days when we learned about the close relationship between
code and data.<br>
<br>
I wonder: does the converse exist?  Haskell data constructors which are really functions?  How and for what might one use those?<br>
<br>
Thanks,<br>
Kirk<br><br><div class="gmail_quote">On Fri, Mar 27, 2009 at 1:58 PM, GüŸnther Schmidt <span dir="ltr">&lt;<a href="mailto:gue.schmidt@web.de">gue.schmidt@web.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Bulat,<br>
<br>
that is so cool!<br>
<br>
Günther<br>
<br>
Bulat Ziganshin schrieb:<div class="im"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello Gü?nther,<br>
<br>
Friday, March 27, 2009, 11:30:41 PM, you wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Some of the memoizing functions, they actually &quot;remember&quot; stuff<br>
*between* calls?<br>
</blockquote>
<br>
what i&#39;ve seen in haskell - functions relying on lazy datastructures<br>
that ensure computation on first usage so this looks exactly like as<br>
memoizing:<br>
<br>
power 2 n | n&gt;=0 &amp;&amp; n&lt;100 = powersOfTwo!n<br>
power x y = x^y<br>
<br>
powersOfTwo = array (0,99) [2^n | n &lt;- [0..99] ]<br>
<br>
<br>
it&#39;s almost exact definition from ghc Prelude<br>
<br>
<br>
<br>
</blockquote>
<br>
<br></div><div><div></div><div class="h5">
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>