<br><div class="gmail_quote">On Thu, May 19, 2011 at 4:50 PM, Martin Dimitrov <span dir="ltr"><<a href="mailto:mrtndimitrov@gmail.com">mrtndimitrov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On 5/19/2011 6:43 PM, Daniel Dormont wrote:<br>
> In my experience with other languages, the difference between call-by-value and call-by-reference is not generally understood to depend on whether the data in memory is physically copied or not. That's really an implementation detail.<br>

</div>On first read I can't think of an example where the implementation is<br>
not actually copying the value.<br>
<div class="im">> Rather, the difference is whether the argument "itself" is passed as opposed to its value.<br>
><br>
</div>Would then in Erlang be more appropriate to say that the argument<br>
"itself" is being passed, thus saying call-by-reference?<br>
<div><div></div><div class="h5"><br></div></div></blockquote><div><br>You have to remember that in Erlang there are only values. You don't have references. What you have is names for values, but that's all it is, a name for a value, just like you use the word "one" to denote the value of the numeral 1.<br>
<br>
The great thing about having only values, is that you don't have to make
 copies in memory, because there's no way to destroy or update them.<br>
<br>You can emulate references by using state carrying data structures. Some assembly required.<br><br></div></div>Robby<br><br>PS And yes, you can delve into deeper aspects, where the "value" metaphor breaks down a bit. But usually you need to have a reasonably good reason for doing that.<br>
<br>