[erlang-questions] Wildcard matching a list of strings vs atoms/binaries
Olav Frengstad
olav@REDACTED
Wed Apr 17 22:26:31 CEST 2013
Hey,
I'm getting some unexpected behavior when trying to pattern match the head
of a list.
When matching against a list of integers I can successfully do a wildcard
match:
27> ("ab ++ _) = "abcd".
But when trying to do the same with a list of atoms i get the error: * 1:
illegal pattern:
28> ([a,b,c] ++ _) = [a,b,c,d].
* 1: illegal pattern
So just making sure there's no magic in string matching i also try with an
actual list of integers:
29> ([0,1,2] ++ _) = [0,1,2,3,4].
[0,1,2,3,4]
Why can't I pattern match a lists with other values integers?
What i'm looking to achieve is to provide wildcard matching on a gen_event
handler so I can do matches like this:
handle_event((Match ++ _), State#state{match = Match}) ->
% handle
Any other alternatives is appreciated, current implementation uses
lists:suffix/2
--
Med Vennlig Hilsen
Olav Frengstad
Systemutvikler // FWT
+47 920 42 090
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130417/549e17bf/attachment.htm>
More information about the erlang-questions
mailing list