<div dir="ltr">Hi, <div><br></div><div>Erlang has this syntactic sugar for matching string prefixes (<a href="http://erlang.org/doc/reference_manual/expressions.html#id80508">http://erlang.org/doc/reference_manual/expressions.html#id80508</a>) where you can do:<span style="color:rgb(56,58,66);font-family:mono,Courier,monospace;font-size:11.2px"></span></div><div><br></div><div>"prefix" ++ Rest = "prefixsomething"</div><div><br></div><div>, which would bind Rest to "something" in this case. </div><div><br></div><div><br></div><div>I'm curious why however it is ok to do:</div><div><br></div><div><div>1> "prefix" ++ Rest = "prefixsomething".</div><div>"prefixsomething"</div><div>2> Rest.</div><div>"something"</div></div><div><br></div><div><br></div><div>but it is not ok to do:</div><div><br></div><div><div>1> Prefix = "prefix".</div><div>"prefix"</div><div>2> Prefix ++ Rest = "prefixsomething".</div><div>* 1: illegal pattern</div></div><div><br></div><div><br></div><div>Is it because this syntactic sugar is transformed more or less as a preprocessing step where the value of Prefix needs to be known, or why else is "Prefix ++ Rest = Something" not allowed even when Prefix is bound?</div><div><br></div><div>/Stefan</div></div>