[erlang-questions] What is wrong with this list?

Dustin Sallings <>
Wed Sep 5 01:37:20 CEST 2007


On Sep 4, 2007, at 15:26 , Peter K Chan wrote:

> As someone who has known Erlang for a while, the error message  
> would probably not be helpful (if even possible). But as a newbie,  
> knowing the difference between an assignment and a match can be  
> very helpful. Actually, if the bad match comes from some deep  
> recursion, I think I would appreciate seeing the actual value, even  
> if I know what badmatches in general are.
>
> I do agree that the current error message gives out enough  
> information for debugging purpose, but having seen, more than once,  
> where someone is confused about the matching vs. assignment, I  
> think the more explicit error message would be "nice" to have.

	I'm not arguing that it can't be better, I'm just suggesting that it  
might not be as simple as saying ``x != y'' as there are a lot of  
other cases where a badmatch may occur where that wasn't the intention.

	In the particular example I gave, it might be wrong because I  
accidentally used the same variable name twice, or it might be wrong  
because the function returned invalid results.  It could be tricky to  
produce an error that helps solve each problem.

	It might be good enough to just format the error better in logs and  
shells.  e.g. instead of

{{badmatch,[x]},[{erl_eval,expr,3}]}

	something like:

bad match:  The following value was not expected here:  [x]
   {erl_eval,expr,3}

	It means the same thing, but might help people understand it a  
little better.  Then again, that could make it harder to know how to  
catch errors since it's no longer obvious that I can also match  
against {badmatch, X}.

-- 
Dustin Sallings





More information about the erlang-questions mailing list