[erlang-questions] What's this mean:[1|1]?It's it a bug?

Lukas Larsson lukas@REDACTED
Wed Jul 3 14:34:47 CEST 2013


On Wed, Jul 3, 2013 at 12:09 PM, Ivan Uemlianin <ivan@REDACTED> wrote:

> [1|1] is an "improper list", in other words, a list that doesn't end with
> an empty list [].  They're valid, but not terribly safe:
>
>   1> is_list([1|1]).
>   true
>   2> length([1|1]).
>   ** exception error: bad argument
>        in function  length/1
>           called as length([1|1])
>
> I don't know if there's any use for them.
>

It can be used to save two words of memory as [1|1] is two words but [1,1]
is four words. So if you are developing a highly optimized data structure
(like dict for instance) it is useful. Most people will however not need
this.

Lukas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130703/2a6ef05e/attachment.htm>


More information about the erlang-questions mailing list