Hi,<br>Fairly simple questions about Erlang internal behavior... (I'm learning!)<br><br>I have a function which store all the message she get:<br><span style="font-family: courier new,monospace;">memoryloop(PidToSendResult, Memory) ->
</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    receive</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
        {store, Data} -> memoryloop(PidToSendResult, [Data|Memory]);</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">        stop -> PidToSendResult ! Memory</span>
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    end.</span><br style="font-family: courier new,monospace;"><br>I wonder:<br>(1) will the (tail) recursion make a real copy (free/realloc) of data which doens't change? I mean if I have not only a Pid to pass but a big state configuration list, should I do the same way?
<br>(2) append an element to a list is supposed to create a new list from the previous list state adding the element. Again the same question: is it a real copy of all the data? any hiden optimization? if it is a real copy, is it another datastructure to use to implement my function "memoryloop" ?
<br><br>Thanks!<br>