[erlang-questions] What does it mean when an evaluated expression is a list that contains the pipe character?

Gordon Guthrie gguthrie@REDACTED
Tue Feb 24 16:52:16 CET 2015


Cole

It’s an improper list.

A proper list ends with a tail of [].

So to make a proper list you would do:
> [1, 2 | [3]].
[1, 2, 3].

(This has an implied final cell of an empty list)

Gordon

> Le 24 févr. 2015 à 15:37, Cole Fichter <cole.fichter@REDACTED> a écrit :
> 
> I came across the example:
> 
> > [1,2|3].
> [1,2|3]
> 
> I understand that the pipe character, |, can be used to append an item to the head of the list or to pop an item off the list in a pattern match.
> 
> But what exactly is happening in the example above? Why does the evaluated expression still contain the pipe?
> 
> My best guess is that the final expression results in a match specification that could be used in a pattern match. However, that seems strange too because if so, we'd be popping two items off the list, which should be illegal.
> 
> Can someone shed some light?
> 
> Thanks!
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list