Check out chapter 2 in my dbg tutorial, it describes matchspecs and how
to use them. You will also understand what it is that fun2ms actually
translates to.<br><br><a href="http://www.erlang-factory.com/conference/testingtutorialworkshop2010/speakers/MazenHarake" target="_blank">http://www.erlang-factory.com/conference/testingtutorialworkshop2010/speakers/MazenHarake</a><br>
<br>Dbg matchspecs aren't exactly like the mnesia ones, there is a small difference but the concept is exactly the same.<br><br>/M<br><br><div class="gmail_quote">On 1 May 2011 21:06, Daniel Dormont <span dir="ltr"><<a href="mailto:dan@greywallsoftware.com">dan@greywallsoftware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I'm trying to get the hang of match specs. Here's a pretty simple one but it has a feature I'm not getting. It's intended for use with Mnesia:<br>
<br>1> rd(person, {name, address, email, phone}).<br>person<br>
2> ets:fun2ms(fun(#person{name=Name, email=Email}) -> {Name, Email} end). <br>[{#person{name = '$1',address = '_',email = '$2',<br> phone = '_'},<br>
[],<br> [{{'$1','$2'}}]}]<br><br>My first question was going to be why the whole thing is a single-element list, but I think I figured that out: it's because there could be multiple clauses of the match as a whole. The part I don't get is in the result: [{{'$1','$2'}}]<br>
<br>1) Why is it a list at all, since a particular head in the function can only have one result?<br>2) Why does the tuple have to be wrapped in another tuple? ie why isn't it just {'$1','$2'}<br><br>
For now I'm happy to just trust that fun2ms works, but I'd like to understand it a little better.<br>
<br>thanks,<br>Dan<br><br>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br>