<div dir="ltr"><font face="verdana, sans-serif">Hi,</font><div><font face="verdana, sans-serif">Working my way through Joe's book and I have another issue with getting one of his code snippets to compile. Specifically, pattern matching within the args list of a function definition just isn't working. Here's the code:</font></div><div><br></div><div><div><font face="monospace">count_characters(Str) -></font></div><div><font face="monospace">     count_characters(Str, #{}).</font></div><div><font face="monospace">count_characters([H|T], #{ H => N }=X) -></font></div><div><font face="monospace">     count_characters(T, X#{ H := N+1 });</font></div><div><font face="monospace">count_characters([H|T], X) -></font></div><div><font face="monospace">     count_characters(T, X#{ H => 1 });</font></div><div><font face="monospace">count_characters([], X) -></font></div><div><font face="monospace">     X.</font></div></div><div><br></div><div><font face="verdana, sans-serif">It's not liking the variable binding of 'H'. So if I do something like so, it's not "evaluating" the bound value in a map.</font></div><div><br></div><div><p style="margin:0px"><font face="monospace">39> Henry8.</font></p>
<p style="margin:0px"><font face="monospace">#{born => 1491,class => king,died => 1547}</font></p><p style="margin:0px"><font face="monospace">42> B = born.</font></p><p style="margin:0px"><font face="monospace">born</font></p><p style="margin:0px"><font face="monospace">43> #{B := HB} = Henry8.</font></p><p style="margin:0px">


</p><p style="margin:0px"><font face="monospace">* 1: illegal use of variable 'B' in map</font></p><p style="margin:0px;font-size:15px;font-family:Menlo"><br></p><p style="margin:0px"><font face="verdana, sans-serif">Any help is much appreciated</font><span style="font-family:Menlo">.</span></p><p style="margin:0px;font-family:Menlo"><br></p><p style="margin:0px;font-family:Menlo">Thanks</p><p style="margin:0px;font-family:Menlo">Santosh</p></div></div>