<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='word-wrap: break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'>

<div class=Section1>

<p class=MsoPlainText>I think it would be nice if the compiler can output why a
match fails (e.g. {number, 1} does not equal {atom, java}).<o:p></o:p></p>

<p class=MsoPlainText><o:p> </o:p></p>

<p class=MsoPlainText>When I first started learning Erlang, I was being killed
by all sorts of badmatch error, mostly because I forgot that variables need to
have capitalized names. Now that I am slightly more experienced, I am not
confused anymore, but I am very sympathetic to people just starting the
language. After all, to diagnose this error, you must be comfortable with both
pattern matching and the fact that variables have to be Capitalized (a simple
fact, but one that does not come to mind easily when you are starting to learn
a language).<o:p></o:p></p>

<p class=MsoPlainText><o:p> </o:p></p>

<p class=MsoPlainText>Peter<o:p></o:p></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
erlang-questions-bounces@erlang.org
[mailto:erlang-questions-bounces@erlang.org] <b>On Behalf Of </b>Dustin
Sallings<br>
<b>Sent:</b> Tuesday, September 04, 2007 2:05 PM<br>
<b>To:</b> Lone Wolf<br>
<b>Cc:</b> erlang-questions@erlang.org<br>
<b>Subject:</b> Re: [erlang-questions] What is wrong with this list?<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<div>

<p class=MsoNormal>On Sep 4, 2007, at 10:42 , Lone Wolf wrote:<o:p></o:p></p>

</div>

<p class=MsoNormal><br>
<br>
<o:p></o:p></p>

<p class=MsoNormal><span class=apple-style-span><span style='font-size:9.0pt;
font-family:"Helvetica","sans-serif";color:black'>I have been trying this
statement:</span></span><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";
color:black'><br>
<span class=apple-style-span>2> [java | python] = [1, 2, 3, 4, 5, 6].</span><br>
<span class=apple-style-span>But I got the following error:</span><br>
<span class=apple-style-span>=ERROR REPORT==== 4-Sep-2007::17:45:07 ===</span><br>
<span class=apple-style-span>Error in process <0.33.0> with exit value:
{{badmatch,[1,2,3,4,5,6]},[{erl_eval,</span><br>
<span class=apple-style-span>expr,3}]}</span><br>
<span class=apple-style-span>Why?</span><br>
<span class=apple-style-span>How to read Erlang errors? they are really
obfuscated.</span></span><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal><span class=apple-tab-span>            </span>I wouldn't say
they're obfuscated.  This is actually a quite useful error.  It's
showing you the value you were trying to pattern match against and telling you
your match failed.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal><span class=apple-tab-span>            </span>Regarding your
statement, it's not clear what you expect it to do.  If you capitalize
java and python (i.e. make them variables instead of atoms), then it'd leave
you with the values 1 and [2,3,4,5,6] for Java and Python respectively.
 Otherwise, it's just going to tell you that that list doesn't equal a two
element list where the first element is the atom ``java'' and the second is the
atom ``python.''<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<div>

<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";
color:black'>-- <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";
color:black'>Dustin Sallings<o:p></o:p></span></p>

</div>

<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";
color:black'><br>
<br>
</span><o:p></o:p></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</body>

</html>