Can pattern variables be globally bound?

Roger Price <>
Sat Mar 25 14:32:24 CET 2006


The following program:

-module(test) .           %  1
-export([test/1]) .       %  2
test (X) ->               %  3
  case X*10               %  4
  of 0 -> a               %  5
  ;  X -> b               %  6
  end .                   %  7

compiles with no warnings, and provides the following output:

Eshell V5.4.9  (abort with ^G)
1> test:test(0) .
a
2> test:test(1) .

=ERROR REPORT==== 25-Mar-2006::14:20:45 ===
Error in process <0.31.0> with exit value: 
{{case_clause,10},[{test,test,1},{shell,exprs,6},{shell,eval_loop,3}]}

My understanding of the error message is that the pattern variable X on 
line 6 is already bound to the value 1, and therefore no match is possible 
for value 10.  Is this correct?

Roger



More information about the erlang-questions mailing list