Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-release > by-pkgid > 016232f1d9a3f7bee85855d35a2bca58 > files > 88

elixir-doc-1.7.2-1.mga7.noarch.rpm

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="ExDoc v0.19.1">
    <title>Map – Elixir v1.7.2</title>
    <link rel="stylesheet" href="dist/app-240d7fc7e5.css" />
      <link rel="canonical" href="https://hexdocs.pm/elixir/v1.7/Map.html" />
    <script src="dist/sidebar_items-cdf4e58b19.js"></script>
    
  </head>
  <body data-type="modules">
    <script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script>
    <div class="main">
<button class="sidebar-button sidebar-toggle">
  <span class="icon-menu" aria-hidden="true"></span>
  <span class="sr-only">Toggle Sidebar</span>
</button>
<button class="sidebar-button night-mode-toggle">
  <span class="icon-theme" aria-hidden="true"></span>
  <span class="sr-only">Toggle Theme</span>
</button>
<section class="sidebar">

  <a href="http://elixir-lang.org/docs.html" class="sidebar-projectLink">
    <div class="sidebar-projectDetails">
      <h1 class="sidebar-projectName">
Elixir      </h1>
      <h2 class="sidebar-projectVersion">
        v1.7.2
      </h2>
    </div>
      <img src="assets/logo.png" alt="Elixir" class="sidebar-projectImage">
  </a>

  <form class="sidebar-search" action="search.html">
    <button type="submit" class="search-button">
      <span class="icon-search" aria-hidden="true"></span>
    </button>
    <input name="q" type="text" id="search-list" class="search-input" placeholder="Search" aria-label="Search" autocomplete="off" />
  </form>

  <ul class="sidebar-listNav">
    <li><a id="extras-list" href="#full-list">Pages</a></li>

      <li><a id="modules-list" href="#full-list">Modules</a></li>

      <li><a id="exceptions-list" href="#full-list">Exceptions</a></li>

  </ul>
  <div class="gradient"></div>
  <ul id="full-list" class="sidebar-fullList"></ul>
</section>

<section class="content">
  <div class="content-outer">
    <div id="content" class="content-inner">


      <h1>
        <small class="visible-xs">Elixir v1.7.2</small>
Map        
          <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L1" title="View Source" class="view-source" rel="help">
            <span class="icon-code" aria-hidden="true"></span>
            <span class="sr-only">View Source</span>
          </a>
      </h1>


        <section id="moduledoc">
<p>A set of functions for working with maps.</p>
<p>Many functions for maps, which implement the <a href="Enumerable.html"><code class="inline">Enumerable</code></a> protocol,
are found in the <a href="Enum.html"><code class="inline">Enum</code></a> module. Additionally, the following functions
for maps are found in <a href="Kernel.html"><code class="inline">Kernel</code></a>:</p>
<ul>
<li><a href="Kernel.html#map_size/1"><code class="inline">map_size/1</code></a>
</li>
</ul>
<p>Maps are the “go to” key-value data structure in Elixir. Maps can be created
with the <code class="inline">%{}</code> syntax, and key-value pairs can be expressed as <code class="inline">key =&gt; value</code>:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="2339935880-1">%{</span><span class="p" data-group-id="2339935880-1">}</span><span class="w">
</span><span class="p" data-group-id="2339935880-2">%{</span><span class="p" data-group-id="2339935880-2">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="2339935880-3">%{</span><span class="s">&quot;one&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:two</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;four&quot;</span><span class="p" data-group-id="2339935880-3">}</span><span class="w">
</span><span class="p" data-group-id="2339935880-4">%{</span><span class="mi">3</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;four&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;one&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:two</span><span class="p" data-group-id="2339935880-4">}</span></code></pre>
<p>Key-value pairs in a map do not follow any order (that’s why the printed map
in the example above has a different order than the map that was created).</p>
<p>Maps do not impose any restriction on the key type: anything can be a key in a
map. As a key-value structure, maps do not allow duplicated keys. Keys are
compared using the exact-equality operator (<a href="Kernel.html#===/2"><code class="inline">===/2</code></a>). If colliding keys are defined
in a map literal, the last one prevails.</p>
<p>When the key in a key-value pair is an atom, the <code class="inline">key: value</code> shorthand syntax
can be used (as in many other special forms), provided key-value pairs are put at
the end:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="4352896335-1">%{</span><span class="s">&quot;hello&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;world&quot;</span><span class="p">,</span><span class="w"> </span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4352896335-1">}</span><span class="w">
</span><span class="p" data-group-id="4352896335-2">%{</span><span class="ss">:a</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;hello&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="s">&quot;world&quot;</span><span class="p" data-group-id="4352896335-2">}</span></code></pre>
<p>Keys in maps can be accessed through some of the functions in this module
(such as <a href="Map.html#get/3"><code class="inline">Map.get/3</code></a> or <a href="Map.html#fetch/2"><code class="inline">Map.fetch/2</code></a>) or through the <code class="inline">map[]</code> syntax provided
by the <a href="Access.html"><code class="inline">Access</code></a> module:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="4157672743-1">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4157672743-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">fetch</span><span class="p" data-group-id="4157672743-2">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="4157672743-2">)</span><span class="w">
</span><span class="p" data-group-id="4157672743-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4157672743-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="p" data-group-id="4157672743-4">[</span><span class="ss">:b</span><span class="p" data-group-id="4157672743-4">]</span><span class="w">
</span><span class="mi">2</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="p" data-group-id="4157672743-5">[</span><span class="s">&quot;non_existing_key&quot;</span><span class="p" data-group-id="4157672743-5">]</span><span class="w">
</span><span class="no">nil</span></code></pre>
<p>For accessing atom keys, one may also <code class="inline">map.key</code>. Note that while <code class="inline">map[key]</code> will
return <code class="inline">nil</code> if <code class="inline">map</code> doesn’t contain <code class="inline">key</code>, <code class="inline">map.key</code> will raise if <code class="inline">map</code> doesn’t
contain the key <code class="inline">:key</code>.</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="0301104814-1">%{</span><span class="ss">foo</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;bar&quot;</span><span class="p">,</span><span class="w"> </span><span class="ss">baz</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;bong&quot;</span><span class="p" data-group-id="0301104814-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="o">.</span><span class="n">foo</span><span class="w">
</span><span class="s">&quot;bar&quot;</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="o">.</span><span class="n">non_existing_key</span><span class="w">
</span><span class="gt">** (KeyError) key :non_existing_key not found in: %{baz: &quot;bong&quot;, foo: &quot;bar&quot;}</span></code></pre>
<p>The two syntaxes for accessing keys reveal the dual nature of maps. The <code class="inline">map[key]</code>
syntax is used for dynamically created maps that may have any key, of any type.
<code class="inline">map.key</code> is used with maps that hold a predetermined set of atoms keys, which are
expected to always be present. Structs, defined via <a href="Kernel.html#defstruct/1"><code class="inline">defstruct/1</code></a>, are one example
of such “static maps”, where the keys can also be checked during compile time.</p>
<p>Maps can be pattern matched on. When a map is on the left-hand side of a
pattern match, it will match if the map on the right-hand side contains the
keys on the left-hand side and their values match the ones on the left-hand
side. This means that an empty map matches every map.</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="0243281597-1">%{</span><span class="p" data-group-id="0243281597-1">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="0243281597-2">%{</span><span class="ss">foo</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;bar&quot;</span><span class="p" data-group-id="0243281597-2">}</span><span class="w">
</span><span class="p" data-group-id="0243281597-3">%{</span><span class="ss">foo</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;bar&quot;</span><span class="p" data-group-id="0243281597-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="0243281597-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="n">a</span><span class="p" data-group-id="0243281597-4">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="0243281597-5">%{</span><span class="ss">:a</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;b&quot;</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0243281597-6">[</span><span class="ss">:c</span><span class="p">,</span><span class="w"> </span><span class="ss">:e</span><span class="p">,</span><span class="w"> </span><span class="ss">:e</span><span class="p" data-group-id="0243281597-6">]</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0243281597-5">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">a</span><span class="w">
</span><span class="mi">1</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="0243281597-7">%{</span><span class="ss">:c</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0243281597-7">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="0243281597-8">%{</span><span class="ss">:a</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="0243281597-8">}</span><span class="w">
</span><span class="gt">** (MatchError) no match of right hand side value: %{2 =&gt; :b, :a =&gt; 1}</span></code></pre>
<p>Variables can be used as map keys both when writing map literals as well as
when matching:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w">
</span><span class="mi">1</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="7768302573-1">%{</span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:one</span><span class="p" data-group-id="7768302573-1">}</span><span class="w">
</span><span class="p" data-group-id="7768302573-2">%{</span><span class="mi">1</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:one</span><span class="p" data-group-id="7768302573-2">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="7768302573-3">%{</span><span class="o">^</span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:one</span><span class="p" data-group-id="7768302573-3">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="7768302573-4">%{</span><span class="mi">1</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:one</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:two</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:three</span><span class="p" data-group-id="7768302573-4">}</span><span class="w">
</span><span class="p" data-group-id="7768302573-5">%{</span><span class="mi">1</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:one</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:two</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="ss">:three</span><span class="p" data-group-id="7768302573-5">}</span></code></pre>
<p>Maps also support a specific update syntax to update the value stored under
<em>existing</em> atom keys:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="9527863826-1">%{</span><span class="ss">one</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">two</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="9527863826-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="9527863826-2">%{</span><span class="n">map</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="ss">one</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;one&quot;</span><span class="p" data-group-id="9527863826-2">}</span><span class="w">
</span><span class="p" data-group-id="9527863826-3">%{</span><span class="ss">one</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;one&quot;</span><span class="p">,</span><span class="w"> </span><span class="ss">two</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="9527863826-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="9527863826-4">%{</span><span class="n">map</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="ss">three</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="9527863826-4">}</span><span class="w">
</span><span class="gt">** (KeyError) key :three not found</span></code></pre>
        </section>

        <section id="summary" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#summary">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Summary
          </h1>
  <div class="summary-types summary">
    <h2>
      <a href="#types">Types</a>
    </h2>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:key/0">key()</a>
  </div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:value/0">value()</a>
  </div>
</div>
  </div>
          
  <div class="summary-functions summary">
    <h2>
      <a href="#functions">Functions</a>
    </h2>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#delete/2">delete(map, key)</a>
  </div>
    <div class="summary-synopsis"><p>Deletes the entry in <code class="inline">map</code> for a specific <code class="inline">key</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#drop/2">drop(map, keys)</a>
  </div>
    <div class="summary-synopsis"><p>Drops the given <code class="inline">keys</code> from <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#equal?/2">equal?(map1, map2)</a>
  </div>
    <div class="summary-synopsis"><p>Checks if two maps are equal</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#fetch!/2">fetch!(map, key)</a>
  </div>
    <div class="summary-synopsis"><p>Fetches the value for a specific <code class="inline">key</code> in the given <code class="inline">map</code>, erroring out if
<code class="inline">map</code> doesn’t contain <code class="inline">key</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#fetch/2">fetch(map, key)</a>
  </div>
    <div class="summary-synopsis"><p>Fetches the value for a specific <code class="inline">key</code> in the given <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#from_struct/1">from_struct(struct)</a>
  </div>
    <div class="summary-synopsis"><p>Converts a <code class="inline">struct</code> to map</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#get/3">get(map, key, default \\ nil)</a>
  </div>
    <div class="summary-synopsis"><p>Gets the value for a specific <code class="inline">key</code> in <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#get_and_update!/3">get_and_update!(map, key, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Gets the value from <code class="inline">key</code> and updates it. Raises if there is no <code class="inline">key</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#get_and_update/3">get_and_update(map, key, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Gets the value from <code class="inline">key</code> and updates it, all in one pass</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#get_lazy/3">get_lazy(map, key, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Gets the value for a specific <code class="inline">key</code> in <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#has_key?/2">has_key?(map, key)</a>
  </div>
    <div class="summary-synopsis"><p>Returns whether the given <code class="inline">key</code> exists in the given <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#keys/1">keys(map)</a>
  </div>
    <div class="summary-synopsis"><p>Returns all keys from <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#merge/2">merge(map1, map2)</a>
  </div>
    <div class="summary-synopsis"><p>Merges two maps into one</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#merge/3">merge(map1, map2, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Merges two maps into one, resolving conflicts through the given <code class="inline">fun</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#new/0">new()</a>
  </div>
    <div class="summary-synopsis"><p>Returns a new empty map</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#new/1">new(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Creates a map from an <code class="inline">enumerable</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#new/2">new(enumerable, transform)</a>
  </div>
    <div class="summary-synopsis"><p>Creates a map from an <code class="inline">enumerable</code> via the given transformation function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#pop/3">pop(map, key, default \\ nil)</a>
  </div>
    <div class="summary-synopsis"><p>Returns and removes the value associated with <code class="inline">key</code> in <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#pop_lazy/3">pop_lazy(map, key, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Lazily returns and removes the value associated with <code class="inline">key</code> in <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#put/3">put(map, key, value)</a>
  </div>
    <div class="summary-synopsis"><p>Puts the given <code class="inline">value</code> under <code class="inline">key</code> in <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#put_new/3">put_new(map, key, value)</a>
  </div>
    <div class="summary-synopsis"><p>Puts the given <code class="inline">value</code> under <code class="inline">key</code> unless the entry <code class="inline">key</code>
already exists in <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#put_new_lazy/3">put_new_lazy(map, key, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Evaluates <code class="inline">fun</code> and puts the result under <code class="inline">key</code>
in <code class="inline">map</code> unless <code class="inline">key</code> is already present</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#replace!/3">replace!(map, key, value)</a>
  </div>
    <div class="summary-synopsis"><p>Alters the value stored under <code class="inline">key</code> to <code class="inline">value</code>, but only
if the entry <code class="inline">key</code> already exists in <code class="inline">map</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#split/2">split(map, keys)</a>
  </div>
    <div class="summary-synopsis"><p>Takes all entries corresponding to the given <code class="inline">keys</code> in <code class="inline">map</code> and extracts
them into a separate map</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#take/2">take(map, keys)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a new map with all the key-value pairs in <code class="inline">map</code> where the key
is in <code class="inline">keys</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#to_list/1">to_list(map)</a>
  </div>
    <div class="summary-synopsis"><p>Converts <code class="inline">map</code> to a list</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#update!/3">update!(map, key, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Updates <code class="inline">key</code> with the given function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#update/4">update(map, key, initial, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Updates the <code class="inline">key</code> in <code class="inline">map</code> with the given function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#values/1">values(map)</a>
  </div>
    <div class="summary-synopsis"><p>Returns all values from <code class="inline">map</code></p>
</div>
</div>
  </div>
          
        </section>

        <section id="types" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#types">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Types
          </h1>
          <div class="types-list">
<div class="detail" id="t:key/0">
    <div class="detail-header">
    <a href="#t:key/0" class="detail-link" title="Link to this type">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this type</span>
    </a>
    <span class="signature">key()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L96" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>key() :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
<div class="detail" id="t:value/0">
    <div class="detail-header">
    <a href="#t:value/0" class="detail-link" title="Link to this type">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this type</span>
    </a>
    <span class="signature">value()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L97" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>value() :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
          </div>
        </section>


        <section id="functions" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#functions">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Functions
          </h1>
<div class="detail" id="delete/2">
    <div class="detail-header">
    <a href="#delete/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">delete(map, key)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L511" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>delete(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Deletes the entry in <code class="inline">map</code> for a specific <code class="inline">key</code>.</p>
<p>If the <code class="inline">key</code> does not exist, returns <code class="inline">map</code> unchanged.</p>
<p>Inlined by the compiler.</p>
<h2 id="delete/2-examples" class="section-heading">
  <a href="#delete/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">delete</span><span class="p" data-group-id="9771930468-1">(</span><span class="p" data-group-id="9771930468-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="9771930468-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="9771930468-1">)</span><span class="w">
</span><span class="p" data-group-id="9771930468-3">%{</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="9771930468-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">delete</span><span class="p" data-group-id="9771930468-4">(</span><span class="p" data-group-id="9771930468-5">%{</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="9771930468-5">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="9771930468-4">)</span><span class="w">
</span><span class="p" data-group-id="9771930468-6">%{</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="9771930468-6">}</span></code></pre>
  </section>
</div>
<div class="detail" id="drop/2">
    <div class="detail-header">
    <a href="#drop/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">drop(map, keys)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L682" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>drop(<a href="typespecs.html#basic-types">map</a>(), <a href="Enumerable.html#t:t/0">Enumerable.t</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Drops the given <code class="inline">keys</code> from <code class="inline">map</code>.</p>
<p>If <code class="inline">keys</code> contains keys that are not in <code class="inline">map</code>, they’re simply ignored.</p>
<h2 id="drop/2-examples" class="section-heading">
  <a href="#drop/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">drop</span><span class="p" data-group-id="8811333951-1">(</span><span class="p" data-group-id="8811333951-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8811333951-2">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8811333951-3">[</span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="ss">:d</span><span class="p" data-group-id="8811333951-3">]</span><span class="p" data-group-id="8811333951-1">)</span><span class="w">
</span><span class="p" data-group-id="8811333951-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8811333951-4">}</span></code></pre>
  </section>
</div>
<div class="detail" id="equal?/2">
    <div class="detail-header">
    <a href="#equal?/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">equal?(map1, map2)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L892" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>equal?(<a href="typespecs.html#basic-types">map</a>(), <a href="typespecs.html#basic-types">map</a>()) :: <a href="typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Checks if two maps are equal.</p>
<p>Two maps are considered to be equal if they contain
the same keys and those keys contain the same values.</p>
<h2 id="equal?/2-examples" class="section-heading">
  <a href="#equal?/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">equal?</span><span class="p" data-group-id="1511844747-1">(</span><span class="p" data-group-id="1511844747-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1511844747-2">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1511844747-3">%{</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="1511844747-3">}</span><span class="p" data-group-id="1511844747-1">)</span><span class="w">
</span><span class="no">true</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">equal?</span><span class="p" data-group-id="1511844747-4">(</span><span class="p" data-group-id="1511844747-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1511844747-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1511844747-6">%{</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1511844747-6">}</span><span class="p" data-group-id="1511844747-4">)</span><span class="w">
</span><span class="no">false</span></code></pre>
  </section>
</div>
<div class="detail" id="fetch!/2">
    <div class="detail-header">
    <a href="#fetch!/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">fetch!(map, key)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L266" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>fetch!(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>()) :: <a href="#t:value/0">value</a>() | <a href="typespecs.html#built-in-types">no_return</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Fetches the value for a specific <code class="inline">key</code> in the given <code class="inline">map</code>, erroring out if
<code class="inline">map</code> doesn’t contain <code class="inline">key</code>.</p>
<p>If <code class="inline">map</code> contains the given <code class="inline">key</code>, the corresponding value is returned. If
<code class="inline">map</code> doesn’t contain <code class="inline">key</code>, a <a href="KeyError.html"><code class="inline">KeyError</code></a> exception is raised.</p>
<p>Inlined by the compiler.</p>
<h2 id="fetch!/2-examples" class="section-heading">
  <a href="#fetch!/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">fetch!</span><span class="p" data-group-id="9921497175-1">(</span><span class="p" data-group-id="9921497175-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="9921497175-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="9921497175-1">)</span><span class="w">
</span><span class="mi">1</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">fetch!</span><span class="p" data-group-id="9921497175-3">(</span><span class="p" data-group-id="9921497175-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="9921497175-4">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="9921497175-3">)</span><span class="w">
</span><span class="gt">** (KeyError) key :b not found in: %{a: 1}</span></code></pre>
  </section>
</div>
<div class="detail" id="fetch/2">
    <div class="detail-header">
    <a href="#fetch/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">fetch(map, key)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L246" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>fetch(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>()) :: {:ok, <a href="#t:value/0">value</a>()} | :error</pre>
      </div>
  </div>
  <section class="docstring">
<p>Fetches the value for a specific <code class="inline">key</code> in the given <code class="inline">map</code>.</p>
<p>If <code class="inline">map</code> contains the given <code class="inline">key</code> with value <code class="inline">value</code>, then <code class="inline">{:ok, value}</code> is
returned. If <code class="inline">map</code> doesn’t contain <code class="inline">key</code>, <code class="inline">:error</code> is returned.</p>
<p>Inlined by the compiler.</p>
<h2 id="fetch/2-examples" class="section-heading">
  <a href="#fetch/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">fetch</span><span class="p" data-group-id="0651127637-1">(</span><span class="p" data-group-id="0651127637-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0651127637-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="0651127637-1">)</span><span class="w">
</span><span class="p" data-group-id="0651127637-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0651127637-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">fetch</span><span class="p" data-group-id="0651127637-4">(</span><span class="p" data-group-id="0651127637-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0651127637-5">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="0651127637-4">)</span><span class="w">
</span><span class="ss">:error</span></code></pre>
  </section>
</div>
<div class="detail" id="from_struct/1">
    <div class="detail-header">
    <a href="#from_struct/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">from_struct(struct)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L869" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>from_struct(<a href="typespecs.html#basic-types">atom</a>() | <a href="typespecs.html#basic-types">struct</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts a <code class="inline">struct</code> to map.</p>
<p>It accepts the struct module or a struct itself and
simply removes the <code class="inline">__struct__</code> field from the given struct
or from a new struct generated from the given module.</p>
<h2 id="from_struct/1-example" class="section-heading">
  <a href="#from_struct/1-example" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Example
</h2>

<pre><code class="nohighlight makeup elixir"><span class="kd">defmodule</span><span class="w"> </span><span class="nc">User</span><span class="w"> </span><span class="k" data-group-id="7541532359-1">do</span><span class="w">
  </span><span class="kd">defstruct</span><span class="w"> </span><span class="p" data-group-id="7541532359-2">[</span><span class="ss">:name</span><span class="p" data-group-id="7541532359-2">]</span><span class="w">
</span><span class="k" data-group-id="7541532359-1">end</span><span class="w">

</span><span class="nc">Map</span><span class="o">.</span><span class="n">from_struct</span><span class="p" data-group-id="7541532359-3">(</span><span class="nc">User</span><span class="p" data-group-id="7541532359-3">)</span><span class="w">
</span><span class="c1">#=&gt; %{name: nil}</span><span class="w">

</span><span class="nc">Map</span><span class="o">.</span><span class="n">from_struct</span><span class="p" data-group-id="7541532359-4">(</span><span class="p" data-group-id="7541532359-5">%</span><span class="nc" data-group-id="7541532359-5">User</span><span class="p" data-group-id="7541532359-5">{</span><span class="ss">name</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;john&quot;</span><span class="p" data-group-id="7541532359-5">}</span><span class="p" data-group-id="7541532359-4">)</span><span class="w">
</span><span class="c1">#=&gt; %{name: &quot;john&quot;}</span></code></pre>
  </section>
</div>
<div class="detail" id="get/3">
  
    <span id="get/2"></span>
  <div class="detail-header">
    <a href="#get/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">get(map, key, default \\ nil)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L428" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>get(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>()) :: <a href="#t:value/0">value</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Gets the value for a specific <code class="inline">key</code> in <code class="inline">map</code>.</p>
<p>If <code class="inline">key</code> is present in <code class="inline">map</code> with value <code class="inline">value</code>, then <code class="inline">value</code> is
returned. Otherwise, <code class="inline">default</code> is returned (which is <code class="inline">nil</code> unless
specified otherwise).</p>
<h2 id="get/3-examples" class="section-heading">
  <a href="#get/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get</span><span class="p" data-group-id="4879515611-1">(</span><span class="p" data-group-id="4879515611-2">%{</span><span class="p" data-group-id="4879515611-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="4879515611-1">)</span><span class="w">
</span><span class="no">nil</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get</span><span class="p" data-group-id="4879515611-3">(</span><span class="p" data-group-id="4879515611-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4879515611-4">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="4879515611-3">)</span><span class="w">
</span><span class="mi">1</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get</span><span class="p" data-group-id="4879515611-5">(</span><span class="p" data-group-id="4879515611-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4879515611-6">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="4879515611-5">)</span><span class="w">
</span><span class="no">nil</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get</span><span class="p" data-group-id="4879515611-7">(</span><span class="p" data-group-id="4879515611-8">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4879515611-8">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4879515611-7">)</span><span class="w">
</span><span class="mi">3</span></code></pre>
  </section>
</div>
<div class="detail" id="get_and_update!/3">
    <div class="detail-header">
    <a href="#get_and_update!/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">get_and_update!(map, key, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L829" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>get_and_update!(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), (<a href="#t:value/0">value</a>() -> {get, <a href="#t:value/0">value</a>()} | :pop)) ::
  {get, <a href="typespecs.html#basic-types">map</a>()} | <a href="typespecs.html#built-in-types">no_return</a>()
when get: <a href="typespecs.html#built-in-types">term</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Gets the value from <code class="inline">key</code> and updates it. Raises if there is no <code class="inline">key</code>.</p>
<p>Behaves exactly like <a href="#get_and_update/3"><code class="inline">get_and_update/3</code></a>, but raises a <a href="KeyError.html"><code class="inline">KeyError</code></a> exception if
<code class="inline">key</code> is not present in <code class="inline">map</code>.</p>
<h2 id="get_and_update!/3-examples" class="section-heading">
  <a href="#get_and_update!/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_and_update!</span><span class="p" data-group-id="4712679913-1">(</span><span class="p" data-group-id="4712679913-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4712679913-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4712679913-3">fn</span><span class="w"> </span><span class="n">current_value</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="p" data-group-id="4712679913-4">{</span><span class="n">current_value</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;new value!&quot;</span><span class="p" data-group-id="4712679913-4">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="4712679913-3">end</span><span class="p" data-group-id="4712679913-1">)</span><span class="w">
</span><span class="p" data-group-id="4712679913-5">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4712679913-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;new value!&quot;</span><span class="p" data-group-id="4712679913-6">}</span><span class="p" data-group-id="4712679913-5">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_and_update!</span><span class="p" data-group-id="4712679913-7">(</span><span class="p" data-group-id="4712679913-8">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4712679913-8">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4712679913-9">fn</span><span class="w"> </span><span class="n">current_value</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="p" data-group-id="4712679913-10">{</span><span class="n">current_value</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;new value!&quot;</span><span class="p" data-group-id="4712679913-10">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="4712679913-9">end</span><span class="p" data-group-id="4712679913-7">)</span><span class="w">
</span><span class="gt">** (KeyError) key :b not found in: %{a: 1}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_and_update!</span><span class="p" data-group-id="4712679913-11">(</span><span class="p" data-group-id="4712679913-12">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4712679913-12">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4712679913-13">fn</span><span class="w"> </span><span class="bp">_</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="ss">:pop</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="4712679913-13">end</span><span class="p" data-group-id="4712679913-11">)</span><span class="w">
</span><span class="p" data-group-id="4712679913-14">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4712679913-15">%{</span><span class="p" data-group-id="4712679913-15">}</span><span class="p" data-group-id="4712679913-14">}</span></code></pre>
  </section>
</div>
<div class="detail" id="get_and_update/3">
    <div class="detail-header">
    <a href="#get_and_update/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">get_and_update(map, key, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L788" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>get_and_update(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), (<a href="#t:value/0">value</a>() -> {get, <a href="#t:value/0">value</a>()} | :pop)) ::
  {get, <a href="typespecs.html#basic-types">map</a>()}
when get: <a href="typespecs.html#built-in-types">term</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Gets the value from <code class="inline">key</code> and updates it, all in one pass.</p>
<p><code class="inline">fun</code> is called with the current value under <code class="inline">key</code> in <code class="inline">map</code> (or <code class="inline">nil</code> if <code class="inline">key</code>
is not present in <code class="inline">map</code>) and must return a two-element tuple: the “get” value
(the retrieved value, which can be operated on before being returned) and the
new value to be stored under <code class="inline">key</code> in the resulting new map. <code class="inline">fun</code> may also
return <code class="inline">:pop</code>, which means the current value shall be removed from <code class="inline">map</code> and
returned (making this function behave like <code class="inline">Map.pop(map, key)</code>).</p>
<p>The returned value is a tuple with the “get” value returned by
<code class="inline">fun</code> and a new map with the updated value under <code class="inline">key</code>.</p>
<h2 id="get_and_update/3-examples" class="section-heading">
  <a href="#get_and_update/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_and_update</span><span class="p" data-group-id="2852595273-1">(</span><span class="p" data-group-id="2852595273-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2852595273-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2852595273-3">fn</span><span class="w"> </span><span class="n">current_value</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="p" data-group-id="2852595273-4">{</span><span class="n">current_value</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;new value!&quot;</span><span class="p" data-group-id="2852595273-4">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="2852595273-3">end</span><span class="p" data-group-id="2852595273-1">)</span><span class="w">
</span><span class="p" data-group-id="2852595273-5">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2852595273-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;new value!&quot;</span><span class="p" data-group-id="2852595273-6">}</span><span class="p" data-group-id="2852595273-5">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_and_update</span><span class="p" data-group-id="2852595273-7">(</span><span class="p" data-group-id="2852595273-8">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2852595273-8">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2852595273-9">fn</span><span class="w"> </span><span class="n">current_value</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="p" data-group-id="2852595273-10">{</span><span class="n">current_value</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;new value!&quot;</span><span class="p" data-group-id="2852595273-10">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="2852595273-9">end</span><span class="p" data-group-id="2852595273-7">)</span><span class="w">
</span><span class="p" data-group-id="2852595273-11">{</span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2852595273-12">%{</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;new value!&quot;</span><span class="p">,</span><span class="w"> </span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2852595273-12">}</span><span class="p" data-group-id="2852595273-11">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_and_update</span><span class="p" data-group-id="2852595273-13">(</span><span class="p" data-group-id="2852595273-14">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2852595273-14">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2852595273-15">fn</span><span class="w"> </span><span class="bp">_</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="ss">:pop</span><span class="w"> </span><span class="k" data-group-id="2852595273-15">end</span><span class="p" data-group-id="2852595273-13">)</span><span class="w">
</span><span class="p" data-group-id="2852595273-16">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2852595273-17">%{</span><span class="p" data-group-id="2852595273-17">}</span><span class="p" data-group-id="2852595273-16">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_and_update</span><span class="p" data-group-id="2852595273-18">(</span><span class="p" data-group-id="2852595273-19">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2852595273-19">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2852595273-20">fn</span><span class="w"> </span><span class="bp">_</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="ss">:pop</span><span class="w"> </span><span class="k" data-group-id="2852595273-20">end</span><span class="p" data-group-id="2852595273-18">)</span><span class="w">
</span><span class="p" data-group-id="2852595273-21">{</span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2852595273-22">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2852595273-22">}</span><span class="p" data-group-id="2852595273-21">}</span></code></pre>
  </section>
</div>
<div class="detail" id="get_lazy/3">
    <div class="detail-header">
    <a href="#get_lazy/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">get_lazy(map, key, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L464" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>get_lazy(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), (() -> <a href="#t:value/0">value</a>())) :: <a href="#t:value/0">value</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Gets the value for a specific <code class="inline">key</code> in <code class="inline">map</code>.</p>
<p>If <code class="inline">key</code> is present in <code class="inline">map</code> with value <code class="inline">value</code>, then <code class="inline">value</code> is
returned. Otherwise, <code class="inline">fun</code> is evaluated and its result is returned.</p>
<p>This is useful if the default value is very expensive to calculate or
generally difficult to setup and teardown again.</p>
<h2 id="get_lazy/3-examples" class="section-heading">
  <a href="#get_lazy/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="4970595423-1">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4970595423-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">fun</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k" data-group-id="4970595423-2">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="c1"># some expensive operation here</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="mi">13</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="4970595423-2">end</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_lazy</span><span class="p" data-group-id="4970595423-3">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="n">fun</span><span class="p" data-group-id="4970595423-3">)</span><span class="w">
</span><span class="mi">1</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">get_lazy</span><span class="p" data-group-id="4970595423-4">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="n">fun</span><span class="p" data-group-id="4970595423-4">)</span><span class="w">
</span><span class="mi">13</span></code></pre>
  </section>
</div>
<div class="detail" id="has_key?/2">
    <div class="detail-header">
    <a href="#has_key?/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">has_key?(map, key)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L227" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>has_key?(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>()) :: <a href="typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns whether the given <code class="inline">key</code> exists in the given <code class="inline">map</code>.</p>
<p>Inlined by the compiler.</p>
<h2 id="has_key?/2-examples" class="section-heading">
  <a href="#has_key?/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">has_key?</span><span class="p" data-group-id="6959287133-1">(</span><span class="p" data-group-id="6959287133-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="6959287133-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="6959287133-1">)</span><span class="w">
</span><span class="no">true</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">has_key?</span><span class="p" data-group-id="6959287133-3">(</span><span class="p" data-group-id="6959287133-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="6959287133-4">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="6959287133-3">)</span><span class="w">
</span><span class="no">false</span></code></pre>
  </section>
</div>
<div class="detail" id="keys/1">
    <div class="detail-header">
    <a href="#keys/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">keys(map)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L112" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>keys(<a href="typespecs.html#basic-types">map</a>()) :: [<a href="#t:key/0">key</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns all keys from <code class="inline">map</code>.</p>
<p>Inlined by the compiler.</p>
<h2 id="keys/1-examples" class="section-heading">
  <a href="#keys/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">keys</span><span class="p" data-group-id="0971088108-1">(</span><span class="p" data-group-id="0971088108-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0971088108-2">}</span><span class="p" data-group-id="0971088108-1">)</span><span class="w">
</span><span class="p" data-group-id="0971088108-3">[</span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="0971088108-3">]</span></code></pre>
  </section>
</div>
<div class="detail" id="merge/2">
    <div class="detail-header">
    <a href="#merge/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">merge(map1, map2)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L533" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>merge(<a href="typespecs.html#basic-types">map</a>(), <a href="typespecs.html#basic-types">map</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Merges two maps into one.</p>
<p>All keys in <code class="inline">map2</code> will be added to <code class="inline">map1</code>, overriding any existing one
(i.e., the keys in <code class="inline">map2</code> “have precedence” over the ones in <code class="inline">map1</code>).</p>
<p>If you have a struct and you would like to merge a set of keys into the
struct, do not use this function, as it would merge all keys on the right
side into the struct, even if the key is not part of the struct. Instead,
use <a href="Kernel.html#struct/2"><code class="inline">Kernel.struct/2</code></a>.</p>
<p>Inlined by the compiler.</p>
<h2 id="merge/2-examples" class="section-heading">
  <a href="#merge/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">merge</span><span class="p" data-group-id="5483466342-1">(</span><span class="p" data-group-id="5483466342-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="5483466342-2">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5483466342-3">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">d</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="5483466342-3">}</span><span class="p" data-group-id="5483466342-1">)</span><span class="w">
</span><span class="p" data-group-id="5483466342-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">d</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="5483466342-4">}</span></code></pre>
  </section>
</div>
<div class="detail" id="merge/3">
    <div class="detail-header">
    <a href="#merge/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">merge(map1, map2, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L553" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>merge(<a href="typespecs.html#basic-types">map</a>(), <a href="typespecs.html#basic-types">map</a>(), (<a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>(), <a href="#t:value/0">value</a>() -> <a href="#t:value/0">value</a>())) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Merges two maps into one, resolving conflicts through the given <code class="inline">fun</code>.</p>
<p>All keys in <code class="inline">map2</code> will be added to <code class="inline">map1</code>. The given function will be invoked
when there are duplicate keys; its arguments are <code class="inline">key</code> (the duplicate key),
<code class="inline">value1</code> (the value of <code class="inline">key</code> in <code class="inline">map1</code>), and <code class="inline">value2</code> (the value of <code class="inline">key</code> in
<code class="inline">map2</code>). The value returned by <code class="inline">fun</code> is used as the value under <code class="inline">key</code> in
the resulting map.</p>
<h2 id="merge/3-examples" class="section-heading">
  <a href="#merge/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">merge</span><span class="p" data-group-id="7804866595-1">(</span><span class="p" data-group-id="7804866595-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7804866595-2">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7804866595-3">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">d</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="7804866595-3">}</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7804866595-4">fn</span><span class="w"> </span><span class="c">_k</span><span class="p">,</span><span class="w"> </span><span class="n">v1</span><span class="p">,</span><span class="w"> </span><span class="n">v2</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="n">v1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">v2</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="7804866595-4">end</span><span class="p" data-group-id="7804866595-1">)</span><span class="w">
</span><span class="p" data-group-id="7804866595-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">d</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="7804866595-5">}</span></code></pre>
  </section>
</div>
<div class="detail" id="new/0">
    <div class="detail-header">
    <a href="#new/0" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">new()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L157" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>new() :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a new empty map.</p>
<h2 id="new/0-examples" class="section-heading">
  <a href="#new/0-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="1375897915-1">(</span><span class="p" data-group-id="1375897915-1">)</span><span class="w">
</span><span class="p" data-group-id="1375897915-2">%{</span><span class="p" data-group-id="1375897915-2">}</span></code></pre>
  </section>
</div>
<div class="detail" id="new/1">
    <div class="detail-header">
    <a href="#new/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">new(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L177" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>new(<a href="Enumerable.html#t:t/0">Enumerable.t</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Creates a map from an <code class="inline">enumerable</code>.</p>
<p>Duplicated keys are removed; the latest one prevails.</p>
<h2 id="new/1-examples" class="section-heading">
  <a href="#new/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="0294033757-1">(</span><span class="p" data-group-id="0294033757-2">[</span><span class="p" data-group-id="0294033757-3">{</span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0294033757-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0294033757-4">{</span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0294033757-4">}</span><span class="p" data-group-id="0294033757-2">]</span><span class="p" data-group-id="0294033757-1">)</span><span class="w">
</span><span class="p" data-group-id="0294033757-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0294033757-5">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="0294033757-6">(</span><span class="p" data-group-id="0294033757-7">[</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0294033757-7">]</span><span class="p" data-group-id="0294033757-6">)</span><span class="w">
</span><span class="p" data-group-id="0294033757-8">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0294033757-8">}</span></code></pre>
  </section>
</div>
<div class="detail" id="new/2">
    <div class="detail-header">
    <a href="#new/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">new(enumerable, transform)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L197" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>new(<a href="Enumerable.html#t:t/0">Enumerable.t</a>(), (<a href="typespecs.html#built-in-types">term</a>() -> {<a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>()})) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Creates a map from an <code class="inline">enumerable</code> via the given transformation function.</p>
<p>Duplicated keys are removed; the latest one prevails.</p>
<h2 id="new/2-examples" class="section-heading">
  <a href="#new/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">new</span><span class="p" data-group-id="5517602344-1">(</span><span class="p" data-group-id="5517602344-2">[</span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="5517602344-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="5517602344-3">fn</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="5517602344-4">{</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="p" data-group-id="5517602344-4">}</span><span class="w"> </span><span class="k" data-group-id="5517602344-3">end</span><span class="p" data-group-id="5517602344-1">)</span><span class="w">
</span><span class="p" data-group-id="5517602344-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="5517602344-5">}</span></code></pre>
  </section>
</div>
<div class="detail" id="pop/3">
  
    <span id="pop/2"></span>
  <div class="detail-header">
    <a href="#pop/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">pop(map, key, default \\ nil)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L617" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>pop(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>()) :: {<a href="#t:value/0">value</a>(), <a href="typespecs.html#basic-types">map</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns and removes the value associated with <code class="inline">key</code> in <code class="inline">map</code>.</p>
<p>If <code class="inline">key</code> is present in <code class="inline">map</code> with value <code class="inline">value</code>, <code class="inline">{value, new_map}</code> is
returned where <code class="inline">new_map</code> is the result of removing <code class="inline">key</code> from <code class="inline">map</code>. If <code class="inline">key</code>
is not present in <code class="inline">map</code>, <code class="inline">{default, map}</code> is returned.</p>
<h2 id="pop/3-examples" class="section-heading">
  <a href="#pop/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">pop</span><span class="p" data-group-id="5478669055-1">(</span><span class="p" data-group-id="5478669055-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5478669055-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="5478669055-1">)</span><span class="w">
</span><span class="p" data-group-id="5478669055-3">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5478669055-4">%{</span><span class="p" data-group-id="5478669055-4">}</span><span class="p" data-group-id="5478669055-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">pop</span><span class="p" data-group-id="5478669055-5">(</span><span class="p" data-group-id="5478669055-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5478669055-6">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="5478669055-5">)</span><span class="w">
</span><span class="p" data-group-id="5478669055-7">{</span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5478669055-8">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5478669055-8">}</span><span class="p" data-group-id="5478669055-7">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">pop</span><span class="p" data-group-id="5478669055-9">(</span><span class="p" data-group-id="5478669055-10">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5478669055-10">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="5478669055-9">)</span><span class="w">
</span><span class="p" data-group-id="5478669055-11">{</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5478669055-12">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5478669055-12">}</span><span class="p" data-group-id="5478669055-11">}</span></code></pre>
  </section>
</div>
<div class="detail" id="pop_lazy/3">
    <div class="detail-header">
    <a href="#pop_lazy/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">pop_lazy(map, key, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L649" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>pop_lazy(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), (() -> <a href="#t:value/0">value</a>())) :: {<a href="#t:value/0">value</a>(), <a href="typespecs.html#basic-types">map</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Lazily returns and removes the value associated with <code class="inline">key</code> in <code class="inline">map</code>.</p>
<p>If <code class="inline">key</code> is present in <code class="inline">map</code> with value <code class="inline">value</code>, <code class="inline">{value, new_map}</code> is
returned where <code class="inline">new_map</code> is the result of removing <code class="inline">key</code> from <code class="inline">map</code>. If <code class="inline">key</code>
is not present in <code class="inline">map</code>, <code class="inline">{fun_result, map}</code> is returned, where <code class="inline">fun_result</code>
is the result of applying <code class="inline">fun</code>.</p>
<p>This is useful if the default value is very expensive to calculate or
generally difficult to setup and teardown again.</p>
<h2 id="pop_lazy/3-examples" class="section-heading">
  <a href="#pop_lazy/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="9372770555-1">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="9372770555-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">fun</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k" data-group-id="9372770555-2">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="c1"># some expensive operation here</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="mi">13</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="9372770555-2">end</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">pop_lazy</span><span class="p" data-group-id="9372770555-3">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="n">fun</span><span class="p" data-group-id="9372770555-3">)</span><span class="w">
</span><span class="p" data-group-id="9372770555-4">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9372770555-5">%{</span><span class="p" data-group-id="9372770555-5">}</span><span class="p" data-group-id="9372770555-4">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">pop_lazy</span><span class="p" data-group-id="9372770555-6">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="n">fun</span><span class="p" data-group-id="9372770555-6">)</span><span class="w">
</span><span class="p" data-group-id="9372770555-7">{</span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="9372770555-8">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="9372770555-8">}</span><span class="p" data-group-id="9372770555-7">}</span></code></pre>
  </section>
</div>
<div class="detail" id="put/3">
    <div class="detail-header">
    <a href="#put/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">put(map, key, value)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L491" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>put(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Puts the given <code class="inline">value</code> under <code class="inline">key</code> in <code class="inline">map</code>.</p>
<p>Inlined by the compiler.</p>
<h2 id="put/3-examples" class="section-heading">
  <a href="#put/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">put</span><span class="p" data-group-id="7948437829-1">(</span><span class="p" data-group-id="7948437829-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7948437829-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7948437829-1">)</span><span class="w">
</span><span class="p" data-group-id="7948437829-3">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7948437829-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">put</span><span class="p" data-group-id="7948437829-4">(</span><span class="p" data-group-id="7948437829-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7948437829-5">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7948437829-4">)</span><span class="w">
</span><span class="p" data-group-id="7948437829-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7948437829-6">}</span></code></pre>
  </section>
</div>
<div class="detail" id="put_new/3">
    <div class="detail-header">
    <a href="#put_new/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">put_new(map, key, value)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L283" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>put_new(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Puts the given <code class="inline">value</code> under <code class="inline">key</code> unless the entry <code class="inline">key</code>
already exists in <code class="inline">map</code>.</p>
<h2 id="put_new/3-examples" class="section-heading">
  <a href="#put_new/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">put_new</span><span class="p" data-group-id="4225508121-1">(</span><span class="p" data-group-id="4225508121-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4225508121-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4225508121-1">)</span><span class="w">
</span><span class="p" data-group-id="4225508121-3">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4225508121-3">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">put_new</span><span class="p" data-group-id="4225508121-4">(</span><span class="p" data-group-id="4225508121-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4225508121-5">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4225508121-4">)</span><span class="w">
</span><span class="p" data-group-id="4225508121-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4225508121-6">}</span></code></pre>
  </section>
</div>
<div class="detail" id="put_new_lazy/3">
    <div class="detail-header">
    <a href="#put_new_lazy/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">put_new_lazy(map, key, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L356" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>put_new_lazy(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), (() -> <a href="#t:value/0">value</a>())) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Evaluates <code class="inline">fun</code> and puts the result under <code class="inline">key</code>
in <code class="inline">map</code> unless <code class="inline">key</code> is already present.</p>
<p>This function is useful in case you want to compute the value to put under
<code class="inline">key</code> only if <code class="inline">key</code> is not already present (e.g., the value is expensive to
calculate or generally difficult to setup and teardown again).</p>
<h2 id="put_new_lazy/3-examples" class="section-heading">
  <a href="#put_new_lazy/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="n">map</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="7743957678-1">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7743957678-1">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">fun</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k" data-group-id="7743957678-2">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="c1"># some expensive operation here</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="mi">3</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="7743957678-2">end</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">put_new_lazy</span><span class="p" data-group-id="7743957678-3">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="n">fun</span><span class="p" data-group-id="7743957678-3">)</span><span class="w">
</span><span class="p" data-group-id="7743957678-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7743957678-4">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">put_new_lazy</span><span class="p" data-group-id="7743957678-5">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="n">fun</span><span class="p" data-group-id="7743957678-5">)</span><span class="w">
</span><span class="p" data-group-id="7743957678-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7743957678-6">}</span></code></pre>
  </section>
</div>
<div class="detail" id="replace!/3">
    <div class="detail-header">
    <a href="#replace!/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">replace!(map, key, value)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L330" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
    
      <span class="note">(since 1.5.0)</span>
    
      <div class="specs">
          <pre>replace!(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Alters the value stored under <code class="inline">key</code> to <code class="inline">value</code>, but only
if the entry <code class="inline">key</code> already exists in <code class="inline">map</code>.</p>
<p>If <code class="inline">key</code> is not present in <code class="inline">map</code>, a <a href="KeyError.html"><code class="inline">KeyError</code></a> exception is raised.</p>
<p>Inlined by the compiler.</p>
<h2 id="replace!/3-examples" class="section-heading">
  <a href="#replace!/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">replace!</span><span class="p" data-group-id="1052831257-1">(</span><span class="p" data-group-id="1052831257-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1052831257-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="1052831257-1">)</span><span class="w">
</span><span class="p" data-group-id="1052831257-3">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1052831257-3">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">replace!</span><span class="p" data-group-id="1052831257-4">(</span><span class="p" data-group-id="1052831257-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="1052831257-5">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1052831257-4">)</span><span class="w">
</span><span class="gt">** (KeyError) key :b not found in: %{a: 1}</span></code></pre>
  </section>
</div>
<div class="detail" id="split/2">
    <div class="detail-header">
    <a href="#split/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">split(map, keys)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L715" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>split(<a href="typespecs.html#basic-types">map</a>(), <a href="Enumerable.html#t:t/0">Enumerable.t</a>()) :: {<a href="typespecs.html#basic-types">map</a>(), <a href="typespecs.html#basic-types">map</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Takes all entries corresponding to the given <code class="inline">keys</code> in <code class="inline">map</code> and extracts
them into a separate map.</p>
<p>Returns a tuple with the new map and the old map with removed keys.</p>
<p>Keys for which there are no entries in <code class="inline">map</code> are ignored.</p>
<h2 id="split/2-examples" class="section-heading">
  <a href="#split/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">split</span><span class="p" data-group-id="0892076626-1">(</span><span class="p" data-group-id="0892076626-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0892076626-2">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0892076626-3">[</span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p">,</span><span class="w"> </span><span class="ss">:e</span><span class="p" data-group-id="0892076626-3">]</span><span class="p" data-group-id="0892076626-1">)</span><span class="w">
</span><span class="p" data-group-id="0892076626-4">{</span><span class="p" data-group-id="0892076626-5">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0892076626-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0892076626-6">%{</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0892076626-6">}</span><span class="p" data-group-id="0892076626-4">}</span></code></pre>
  </section>
</div>
<div class="detail" id="take/2">
    <div class="detail-header">
    <a href="#take/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">take(map, keys)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L390" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>take(<a href="typespecs.html#basic-types">map</a>(), <a href="Enumerable.html#t:t/0">Enumerable.t</a>()) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a new map with all the key-value pairs in <code class="inline">map</code> where the key
is in <code class="inline">keys</code>.</p>
<p>If <code class="inline">keys</code> contains keys that are not in <code class="inline">map</code>, they’re simply ignored.</p>
<h2 id="take/2-examples" class="section-heading">
  <a href="#take/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">take</span><span class="p" data-group-id="8100028310-1">(</span><span class="p" data-group-id="8100028310-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8100028310-2">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8100028310-3">[</span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p">,</span><span class="w"> </span><span class="ss">:e</span><span class="p" data-group-id="8100028310-3">]</span><span class="p" data-group-id="8100028310-1">)</span><span class="w">
</span><span class="p" data-group-id="8100028310-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8100028310-4">}</span></code></pre>
  </section>
</div>
<div class="detail" id="to_list/1">
    <div class="detail-header">
    <a href="#to_list/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">to_list(map)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L145" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>to_list(<a href="typespecs.html#basic-types">map</a>()) :: [{<a href="typespecs.html#built-in-types">term</a>(), <a href="typespecs.html#built-in-types">term</a>()}]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts <code class="inline">map</code> to a list.</p>
<p>Each key-value pair in the map is converted to a two-element tuple <code class="inline">{key,
value}</code> in the resulting list.</p>
<p>Inlined by the compiler.</p>
<h2 id="to_list/1-examples" class="section-heading">
  <a href="#to_list/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">to_list</span><span class="p" data-group-id="4238848568-1">(</span><span class="p" data-group-id="4238848568-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4238848568-2">}</span><span class="p" data-group-id="4238848568-1">)</span><span class="w">
</span><span class="p" data-group-id="4238848568-3">[</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4238848568-3">]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">to_list</span><span class="p" data-group-id="4238848568-4">(</span><span class="p" data-group-id="4238848568-5">%{</span><span class="mi">1</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4238848568-5">}</span><span class="p" data-group-id="4238848568-4">)</span><span class="w">
</span><span class="p" data-group-id="4238848568-6">[</span><span class="p" data-group-id="4238848568-7">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4238848568-7">}</span><span class="p" data-group-id="4238848568-6">]</span></code></pre>
  </section>
</div>
<div class="detail" id="update!/3">
    <div class="detail-header">
    <a href="#update!/3" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">update!(map, key, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L750" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>update!(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), (<a href="#t:value/0">value</a>() -> <a href="#t:value/0">value</a>())) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Updates <code class="inline">key</code> with the given function.</p>
<p>If <code class="inline">key</code> is present in <code class="inline">map</code> with value <code class="inline">value</code>, <code class="inline">fun</code> is invoked with
argument <code class="inline">value</code> and its result is used as the new value of <code class="inline">key</code>. If <code class="inline">key</code> is
not present in <code class="inline">map</code>, a <a href="KeyError.html"><code class="inline">KeyError</code></a> exception is raised.</p>
<h2 id="update!/3-examples" class="section-heading">
  <a href="#update!/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">update!</span><span class="p" data-group-id="6298444257-1">(</span><span class="p" data-group-id="6298444257-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="6298444257-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="6298444257-3">(</span><span class="ni">&amp;1</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6298444257-3">)</span><span class="p" data-group-id="6298444257-1">)</span><span class="w">
</span><span class="p" data-group-id="6298444257-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6298444257-4">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">update!</span><span class="p" data-group-id="6298444257-5">(</span><span class="p" data-group-id="6298444257-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="6298444257-6">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="6298444257-7">(</span><span class="ni">&amp;1</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6298444257-7">)</span><span class="p" data-group-id="6298444257-5">)</span><span class="w">
</span><span class="gt">** (KeyError) key :b not found in: %{a: 1}</span></code></pre>
  </section>
</div>
<div class="detail" id="update/4">
    <div class="detail-header">
    <a href="#update/4" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">update(map, key, initial, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L586" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>update(<a href="typespecs.html#basic-types">map</a>(), <a href="#t:key/0">key</a>(), <a href="#t:value/0">value</a>(), (<a href="#t:value/0">value</a>() -> <a href="#t:value/0">value</a>())) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Updates the <code class="inline">key</code> in <code class="inline">map</code> with the given function.</p>
<p>If <code class="inline">key</code> is present in <code class="inline">map</code> with value <code class="inline">value</code>, <code class="inline">fun</code> is invoked with
argument <code class="inline">value</code> and its result is used as the new value of <code class="inline">key</code>. If <code class="inline">key</code> is
not present in <code class="inline">map</code>, <code class="inline">initial</code> is inserted as the value of <code class="inline">key</code>. The initial
value will not be passed through the update function.</p>
<h2 id="update/4-examples" class="section-heading">
  <a href="#update/4-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">update</span><span class="p" data-group-id="6063069601-1">(</span><span class="p" data-group-id="6063069601-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="6063069601-2">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="6063069601-3">(</span><span class="ni">&amp;1</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6063069601-3">)</span><span class="p" data-group-id="6063069601-1">)</span><span class="w">
</span><span class="p" data-group-id="6063069601-4">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6063069601-4">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">update</span><span class="p" data-group-id="6063069601-5">(</span><span class="p" data-group-id="6063069601-6">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="6063069601-6">}</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="6063069601-7">(</span><span class="ni">&amp;1</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6063069601-7">)</span><span class="p" data-group-id="6063069601-5">)</span><span class="w">
</span><span class="p" data-group-id="6063069601-8">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">11</span><span class="p" data-group-id="6063069601-8">}</span></code></pre>
  </section>
</div>
<div class="detail" id="values/1">
    <div class="detail-header">
    <a href="#values/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">values(map)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/map.ex#L126" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>values(<a href="typespecs.html#basic-types">map</a>()) :: [<a href="#t:value/0">value</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns all values from <code class="inline">map</code>.</p>
<p>Inlined by the compiler.</p>
<h2 id="values/1-examples" class="section-heading">
  <a href="#values/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Map</span><span class="o">.</span><span class="n">values</span><span class="p" data-group-id="3769694800-1">(</span><span class="p" data-group-id="3769694800-2">%{</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="3769694800-2">}</span><span class="p" data-group-id="3769694800-1">)</span><span class="w">
</span><span class="p" data-group-id="3769694800-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="3769694800-3">]</span></code></pre>
  </section>
</div>
        </section>

          <footer class="footer">
        <p>
          <span class="line">
            Built using
            <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener">ExDoc</a> (v0.19.1),
          </span>
          <span class="line">
            designed by
            <a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>.
            </span>
        </p>
      </footer>
    </div>
  </div>
</section>
</div>
  <script src="dist/app-a0c90688fa.js"></script>
  
  </body>
</html>