<br><br><div class="gmail_quote">On Thu, Mar 22, 2012 at 2:44 PM, Jan Erik Moström <span dir="ltr">&lt;<a href="mailto:lists@mostrom.pp.se">lists@mostrom.pp.se</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I&#39;ve just started to learn Haskell and played around a bit and tried this<br>
<br>
1: let x = [1,2,3]<br>
2: let x = x ++ [4,5,6]<br>
3: x<br>
<br>
The last line doesn&#39;t give a result. I assume that this is because &#39;x&#39; is a name of a value, in the second line I redefine &#39;x&#39; to a new value but Haskell doesn&#39;t evaluate the value until the last line but then &#39;x&#39; becomes recursively defined in itself (the second x on line 2 is interpreted to refer to the value of the first x on line 2 and  not the value defined in line 1). This behavior is caused by the lazy evaluation in Haskell.<br>

<br>
Have I understood this correctly?<br></blockquote><div><br></div><div>Yes.</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
- jem<br>
<br>
<br>
<br>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
</blockquote></div><br>