私はErlangでビットパターンマッチングを実験しています:
-module(test).
-export([test/2]).
%test(P,<<X:P,0:1>>) ->
% X.
test(P,X) ->
<<Y:P,0:1>> = X,
Y.
コメントアウトされたバージョンをコンパイルするとtest/2
、「変数'P'はバインドされていません」という苦情が表示されます。最初のバージョンが2番目のバージョンと同じように機能しないようにする正当な理由はありますか?