<div dir="ltr"><br><br><div class="gmail_quote">On Sat, Jul 26, 2008 at 6:25 PM, James Hague <span dir="ltr"><<a href="mailto:james.hague@gmail.com">james.hague@gmail.com</a>></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;">
<div class="Ih2E3d">On Fri, Jul 25, 2008 at 2:36 PM, Berlin Brown <<a href="mailto:berlin.brown@gmail.com">berlin.brown@gmail.com</a>> wrote:<br>
><br>
> Yea, but that tends to work against the immutability feature of<br>
> erlang?<br>
<br>
</div>Not at all.  Within a function, single-assignment is just a way of<br>
associating a symbolic name with a variable.  No data being modified<br>
at all when you say:<br>
<br>
X = tl(L)<br>
<br>
Code like this following is fairly common in Erlang:<br>
<br>
X = tl(L),<br>
X2 = tl(X),<br>
X3 = tl(X2)<br>
<br>
Again, no data is being changed.  They're just symbols representing<br>
values.  And there no reason you couldn't say "I would like to use a<br>
fresh symbol with the same name as a previous symbol," like this:<br>
<br>
X = tl(L),<br>
*X = tl(X),<br>
*X = tl(X)<br>
</blockquote><div><br>Imagine this:<br><br>X = tl(L),<br>... many messy lines ...<br>
*X = tl(X),<br>... another many lines ...<br>
*X = tl(X),<br>
... another many almost unreadable messy lines ...<br>sensitive_usage(X), % <--- buggy X value observed here<br><br>And
my question is, where Value of X came from? It goes from L, but how
long it take and how many errors you can do when you will investigate?<br>
<br>It is reason why once variable assignment is in Erlang and why it
is good think. One advice for you: Don't change well proved language
until you worth know it.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
It's exactly the same thing as the previous example.  Previous values<br>
of X are not modified.  In fact it would be easy to mechanically<br>
preprocess Erlang code to have the *X names automatically turned into<br>
distinct names.<br>
<font color="#888888"><br>
James<br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>--Hynek (Pichi) Vychodil<br>
</div>