[erlang-questions] Illegal map key in pattern

Valentin Micic v@REDACTED
Sat Aug 3 18:14:15 CEST 2019


I am a bit nonplussed with the behaviour of map module…consider the following map:

f(MAP), MAP = #{ {12,1} => "some value", {12,2} => "some other value"}. 

Then, the following works:

f(V), case MAP of #{ {1,12} := V} -> V end.
"some value”

Then, surely, a snippet below should also work... except that it doesn’t: 

 f(DCID), f(SORD), DCID = 12, SORD=1. 

f(V), case MAP of #{ {DCID, SORD} := V} -> V end.

* 1: illegal map key in pattern

To make things worse, when I just replace an explicit term, such as {DCID, SORD}, with something like this:


f(V), case MAP of #{ GRP_KEY := V} -> V end.

"some value”

Then the whole thing works again.

I would argue that all cases should just work.
How come they don’t? 

Kind regards


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190803/d6478966/attachment.htm>

More information about the erlang-questions mailing list