Ivan,<br><br>There is a concept called "lexical scoping" — it means that some lexical constructs have a local namespace. In that example I would expect that all variables that were introduced inside case statement (Error/Result) won't be bound after the statement. On top of that, Erlang compiler already has some similar logic — it will warn you about "exported" variables and will not compile code with "unsafe" variables, so it's only a matter of a minor (and maybe optional) language change. I'm sorry but I can't see why do you think that that values should be identical.<br><br>On Tuesday, July 10, 2012 1:54:11 PM UTC+4, Ivan Uemlianin wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">> On 07/10/2012 10:43 AM, Dmitry Groshev wrote:
<br>> case do_something() of
<br>>      {ok, Result} -> Result;
<br>>      {error, Error} -> Error
<br>> end,
<br>> case do_another() of
<br>>      {ok, Result} -> Result;
<br>>      {error, Error} -> Error
<br>> end,
<br>>
<br>> Result and Error are bound in first case and we will probably have a
<br>> match failure in second one. Compiler warns about this, but it's still
<br>> very unwieldy to fix it with names like Error1, Error2, etc.
<br>
<br>Are you expecting that the "Result" variable returned from do_another() 
<br>should have the same value as the "Result" returned from do_something()? 
<br>  (and likewise for Error.)
<br>
<br>If so, I don't see why you would get a match failure: e.g., you surely 
<br>wouldn't get a match failure if do_something() and do_another() both 
<br>returned {ok, 5}?
<br>
<br>If not, yes you will get match failures.
<br>
<br>To this naive observer, the code looks like the "Result"s (and the 
<br>"Errors"s) are expected to be identical.
<br>
<br>Best wishes
<br>
<br>Ivan
<br>
<br>
<br>-- 
<br>==============================<wbr>==============================
<br>Ivan A. Uemlianin PhD
<br>Llaisdy
<br>Speech Technology Research and Development
<br>
<br>                     <a href="mailto:ivan@llaisdy.com" target="_blank">ivan@llaisdy.com</a>
<br>                      <a href="http://www.llaisdy.com" target="_blank">www.llaisdy.com</a>
<br>                          <a href="http://llaisdy.wordpress.com" target="_blank">llaisdy.wordpress.com</a>
<br>               <a href="http://github.com/llaisdy" target="_blank">github.com/llaisdy</a>
<br>                      <a href="http://www.linkedin.com/in/ivanuemlianin" target="_blank">www.linkedin.com/in/<wbr>ivanuemlianin</a>
<br>
<br>               "hilaritas excessum habere nequit"
<br>                  (Spinoza, Ethica, IV, XLII)
<br>==============================<wbr>==============================
<br>
<br>
<br>______________________________<wbr>_________________
<br>erlang-questions mailing list
<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>
<br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a>
<br></blockquote>