[erlang-questions] The compiler "eats" structures which are not separated by commas
Tomasz Maciejewski
ponton@REDACTED
Fri Apr 20 13:34:46 CEST 2012
W dniu 20 kwietnia 2012 13:27 użytkownik Serge Polkovnikov
<serge.polkovnikov@REDACTED> napisał:
> start() ->
> [
> #haha{v=1} %% No comma here
> #haha{v=2} %% No comma here
> #haha{v=3}
> ].
This is not a bug. The "Foo#bar" syntax tells the compiler to treat
Foo as a bar instance. But this doesn't forbid Foo being also
"Something#bar". So your code tells the compiler to get #haha{v=1},
substitute v with 2, and then subsitute v with 3. That's why you end
up with [{haha, 3}].
If you had a record with fields v and w, then:
[
#haha{v=1}
#haha{w=3}
]
would return a list [{haha,1,3}]
--
Tomasz Maciejewski
More information about the erlang-questions
mailing list