[erlang-questions] Adding binary data to a list

Theepan <>
Mon Jan 25 17:33:27 CET 2016


Thanks Richard, for the clarification. Yes - I was referring to
interprocess communication..

Regards,
Theepan

On Mon, Jan 25, 2016 at 5:08 AM, Richard A. O'Keefe <>
wrote:

>
> On 24/01/2016, at 9:23 am, Theepan <> wrote:
> > If I add the same binary data to different lists, will it be copied? I
> know for a fact that binary data are referenced, but not sure in list
> making case.
>
> Suppose you have this code:
>
>    X = ...any arbitrary Erlang term...
>    P = ...any list you like...
>    Q = ...any other list you like...
>    P1 = [X|P],
>    Q1 = Q ++ [X]
>
> X is not copied, no matter what it is, no matter how small,
> no matter how big.  Making P1 copies nothing, just creates
> one new pair.  Making Q1 copies the spine of Q, but not the
> elements of Q, and not X.
>
> You are probably thinking about the fact that
> large binaries are *not* copied when they are
> sent to another process, and that they are
> reference counted for that purpose.
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160125/6d737854/attachment.html>


More information about the erlang-questions mailing list