&gt; ...but the added chapter on maps give you errors whe using erlang 18...<p>Are you talking about the section entitled &quot;What Maps Shall Be&quot;, or are you talking about the section entitled &quot;Stubby Legs for Early Releases&quot;?<p>If you&#x27;re talking about the former, then the prose in the previous section &quot;EEP, EEP!&quot; makes it pretty clear that the maps spec is not <i>fully</i> implemented in Erlang, and that &quot;What Maps Shall...&quot; describes the <i>spec</i>, rather than the implementation.<p>If you&#x27;re talking about the latter, then I&#x27;m not sure what&#x27;s up on your end... the examples in &quot;Stubby Legs...&quot; work for me:<p><pre><code>  Erlang&#x2F;OTP 18 [erts-7.2.1] [source] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false]
  
  Eshell V7.2.1  (abort with ^G)
  1&gt; SomeMap = #{a =&gt; x}.
  #{a =&gt; x}
  2&gt; #{a := X} = SomeMap.
  #{a =&gt; x}
  3&gt; X.
  x
  4&gt; SomeMap#{a := update, b =&gt; new}.
  #{a =&gt; update,b =&gt; new}
  5&gt; Y=3, #{Y =&gt; Y-1}.
  #{3 =&gt; 2}
  6&gt; 
</code></pre>
&gt; For a beginners it sound very strange that a basic structure like a maps is not well consolidated in a language as erlang.<p>The maps module is very, very, very new. As mentioned in the &quot;Mexican Standoff&quot; section, <i>dict</i> [0] was more-or-less the go-to module when you wanted a K&#x2F;V store [1] in Erlang. The maps module [2] (and map type) adds a lot of nice syntax for working with K&#x2F;V datatypes.<p>[0] <a href="http:&#x2F;&#x2F;erlang.org&#x2F;doc&#x2F;man&#x2F;dict.html" rel="nofollow">http:&#x2F;&#x2F;erlang.org&#x2F;doc&#x2F;man&#x2F;dict.html</a><p>[1] And had no need for ETS, or Mnesia, or similar, naturally.<p>[2] <a href="http:&#x2F;&#x2F;erlang.org&#x2F;doc&#x2F;man&#x2F;maps.html" rel="nofollow">http:&#x2F;&#x2F;erlang.org&#x2F;doc&#x2F;man&#x2F;maps.html</a>