Sophie

Sophie

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

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>Enum – Elixir v1.7.2</title>
    <link rel="stylesheet" href="dist/app-240d7fc7e5.css" />
      <link rel="canonical" href="https://hexdocs.pm/elixir/v1.7/Enum.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>
Enum        
          <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L196" 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>Provides a set of algorithms to work with enumerables.</p>
<p>In Elixir, an enumerable is any data type that implements the
<a href="Enumerable.html"><code class="inline">Enumerable</code></a> protocol. <a href="List.html"><code class="inline">List</code></a>s (<code class="inline">[1, 2, 3]</code>), <a href="Map.html"><code class="inline">Map</code></a>s (<code class="inline">%{foo: 1, bar: 2}</code>)
and <a href="Range.html"><code class="inline">Range</code></a>s (<code class="inline">1..3</code>) are common data types used as enumerables:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map</span><span class="p" data-group-id="3917383167-1">(</span><span class="p" data-group-id="3917383167-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3917383167-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3917383167-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="n">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k" data-group-id="3917383167-3">end</span><span class="p" data-group-id="3917383167-1">)</span><span class="w">
</span><span class="p" data-group-id="3917383167-4">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="3917383167-4">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sum</span><span class="p" data-group-id="3917383167-5">(</span><span class="p" data-group-id="3917383167-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3917383167-6">]</span><span class="p" data-group-id="3917383167-5">)</span><span class="w">
</span><span class="mi">6</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map</span><span class="p" data-group-id="3917383167-7">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3917383167-8">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="n">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k" data-group-id="3917383167-8">end</span><span class="p" data-group-id="3917383167-7">)</span><span class="w">
</span><span class="p" data-group-id="3917383167-9">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="3917383167-9">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sum</span><span class="p" data-group-id="3917383167-10">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">3</span><span class="p" data-group-id="3917383167-10">)</span><span class="w">
</span><span class="mi">6</span><span class="w">

</span><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="3917383167-11">%{</span><span class="s">&quot;a&quot;</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" data-group-id="3917383167-11">}</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map</span><span class="p" data-group-id="3917383167-12">(</span><span class="n">map</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3917383167-13">fn</span><span class="w"> </span><span class="p" data-group-id="3917383167-14">{</span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p" data-group-id="3917383167-14">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="3917383167-15">{</span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="3917383167-15">}</span><span class="w"> </span><span class="k" data-group-id="3917383167-13">end</span><span class="p" data-group-id="3917383167-12">)</span><span class="w">
</span><span class="p" data-group-id="3917383167-16">[</span><span class="p" data-group-id="3917383167-17">{</span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="3917383167-17">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3917383167-18">{</span><span class="s">&quot;b&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="3917383167-18">}</span><span class="p" data-group-id="3917383167-16">]</span></code></pre>
<p>However, many other enumerables exist in the language, such as <a href="MapSet.html"><code class="inline">MapSet</code></a>s
and the data type returned by <a href="File.html#stream!/3"><code class="inline">File.stream!/3</code></a> which allows a file to be
traversed as if it was an enumerable.</p>
<p>The functions in this module work in linear time. This means that,
the larger the enumerable, the longer it will take to perform the desired
operation. This is expected on operations such as <a href="Enum.html#map/2"><code class="inline">Enum.map/2</code></a>. After all,
if we want to traverse every element on a list, the longer the list, the
more elements we need to traverse, and the longer it will take.</p>
<p>This linear behaviour should also be expected on operations like <a href="#count/1"><code class="inline">count/1</code></a>,
<a href="#member?/2"><code class="inline">member?/2</code></a>, <a href="#at/2"><code class="inline">at/2</code></a> and similar. While Elixir does allow data types to
provide performant variants for such operations, you should not expect it
to always be available, since the <a href="Enum.html#content"><code class="inline">Enum</code></a> module is meant to work with a
large variety of data types and not all data types can provide optimized
behaviour.</p>
<p>Finally, note the functions in the <a href="Enum.html#content"><code class="inline">Enum</code></a> module are eager: they will
traverse the enumerable as soon as they are invoked. This is particularly
dangerous when working with infinite enumerables. In such cases, you should
use the <a href="Stream.html"><code class="inline">Stream</code></a> module, which allows you to lazily express computations,
without traversing collections, and work with possibly infinite collections.
See the <a href="Stream.html"><code class="inline">Stream</code></a> module for examples and documentation.</p>
        </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:acc/0">acc()</a>
  </div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:default/0">default()</a>
  </div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:element/0">element()</a>
  </div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:index/0">index()</a>
  </div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:t/0">t()</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="#all?/2">all?(enumerable, fun \\ fn x -&gt; x end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns <code class="inline">true</code> if the given <code class="inline">fun</code> evaluates to true on all of the items in the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#any?/2">any?(enumerable, fun \\ fn x -&gt; x end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns <code class="inline">true</code> if the given <code class="inline">fun</code> evaluates to true on any of the items in the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#at/3">at(enumerable, index, default \\ nil)</a>
  </div>
    <div class="summary-synopsis"><p>Finds the element at the given <code class="inline">index</code> (zero-based)</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#chunk_by/2">chunk_by(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Splits enumerable on every element for which <code class="inline">fun</code> returns a new
value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#chunk_every/2">chunk_every(enumerable, count)</a>
  </div>
    <div class="summary-synopsis"><p>Shortcut to <code class="inline">chunk_every(enumerable, count, count)</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#chunk_every/4">chunk_every(enumerable, count, step, leftover \\ [])</a>
  </div>
    <div class="summary-synopsis"><p>Returns list of lists containing <code class="inline">count</code> items each, where
each new chunk starts <code class="inline">step</code> elements into the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#chunk_while/4">chunk_while(enumerable, acc, chunk_fun, after_fun)</a>
  </div>
    <div class="summary-synopsis"><p>Chunks the <code class="inline">enumerable</code> with fine grained control when every chunk is emitted</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#concat/1">concat(enumerables)</a>
  </div>
    <div class="summary-synopsis"><p>Given an enumerable of enumerables, concatenates the enumerables into
a single list</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#concat/2">concat(left, right)</a>
  </div>
    <div class="summary-synopsis"><p>Concatenates the enumerable on the right with the enumerable on the
left</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#count/1">count(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the size of the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#count/2">count(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the count of items in the enumerable for which <code class="inline">fun</code> returns
a truthy value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#dedup/1">dedup(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Enumerates the <code class="inline">enumerable</code>, returning a list where all consecutive
duplicated elements are collapsed to a single element</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#dedup_by/2">dedup_by(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Enumerates the <code class="inline">enumerable</code>, returning a list where all consecutive
duplicated elements are collapsed to a single element</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#drop/2">drop(enumerable, amount)</a>
  </div>
    <div class="summary-synopsis"><p>Drops the <code class="inline">amount</code> of items from the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#drop_every/2">drop_every(enumerable, nth)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a list of every <code class="inline">nth</code> item in the enumerable dropped,
starting with the first element</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#drop_while/2">drop_while(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Drops items at the beginning of the enumerable while <code class="inline">fun</code> returns a
truthy value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#each/2">each(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Invokes the given <code class="inline">fun</code> for each item in the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#empty?/1">empty?(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Determines if the enumerable is empty</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#fetch!/2">fetch!(enumerable, index)</a>
  </div>
    <div class="summary-synopsis"><p>Finds the element at the given <code class="inline">index</code> (zero-based)</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#fetch/2">fetch(enumerable, index)</a>
  </div>
    <div class="summary-synopsis"><p>Finds the element at the given <code class="inline">index</code> (zero-based)</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#filter/2">filter(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Filters the enumerable, i.e. returns only those elements
for which <code class="inline">fun</code> returns a truthy value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#find/3">find(enumerable, default \\ nil, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the first item for which <code class="inline">fun</code> returns a truthy value.
If no such item is found, returns <code class="inline">default</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#find_index/2">find_index(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Similar to <a href="#find/3"><code class="inline">find/3</code></a>, but returns the index (zero-based)
of the element instead of the element itself</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#find_value/3">find_value(enumerable, default \\ nil, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Similar to <a href="#find/3"><code class="inline">find/3</code></a>, but returns the value of the function
invocation instead of the element itself</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#flat_map/2">flat_map(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Maps the given <code class="inline">fun</code> over <code class="inline">enumerable</code> and flattens the result</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#flat_map_reduce/3">flat_map_reduce(enumerable, acc, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Maps and reduces an enumerable, flattening the given results (only one level deep)</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#group_by/3">group_by(enumerable, key_fun, value_fun \\ fn x -&gt; x end)</a>
  </div>
    <div class="summary-synopsis"><p>Splits the enumerable into groups based on <code class="inline">key_fun</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#intersperse/2">intersperse(enumerable, element)</a>
  </div>
    <div class="summary-synopsis"><p>Intersperses <code class="inline">element</code> between each element of the enumeration</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#into/2">into(enumerable, collectable)</a>
  </div>
    <div class="summary-synopsis"><p>Inserts the given <code class="inline">enumerable</code> into a <code class="inline">collectable</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#into/3">into(enumerable, collectable, transform)</a>
  </div>
    <div class="summary-synopsis"><p>Inserts the given <code class="inline">enumerable</code> into a <code class="inline">collectable</code> according to the
transformation function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#join/2">join(enumerable, joiner \\ &quot;&quot;)</a>
  </div>
    <div class="summary-synopsis"><p>Joins the given enumerable into a binary using <code class="inline">joiner</code> as a
separator</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#map/2">map(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a list where each item is the result of invoking
<code class="inline">fun</code> on each corresponding item of <code class="inline">enumerable</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#map_every/3">map_every(enumerable, nth, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a list of results of invoking <code class="inline">fun</code> on every <code class="inline">nth</code>
item of <code class="inline">enumerable</code>, starting with the first element</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#map_join/3">map_join(enumerable, joiner \\ &quot;&quot;, mapper)</a>
  </div>
    <div class="summary-synopsis"><p>Maps and joins the given enumerable in one pass</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#map_reduce/3">map_reduce(enumerable, acc, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Invokes the given function to each item in the enumerable to reduce
it to a single element, while keeping an accumulator</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#max/2">max(enumerable, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the maximal element in the enumerable according
to Erlang’s term ordering</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#max_by/3">max_by(enumerable, fun, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the maximal element in the enumerable as calculated
by the given function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#member?/2">member?(enumerable, element)</a>
  </div>
    <div class="summary-synopsis"><p>Checks if <code class="inline">element</code> exists within the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#min/2">min(enumerable, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the minimal element in the enumerable according
to Erlang’s term ordering</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#min_by/3">min_by(enumerable, fun, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the minimal element in the enumerable as calculated
by the given function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#min_max/2">min_max(enumerable, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a tuple with the minimal and the maximal elements in the
enumerable according to Erlang’s term ordering</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#min_max_by/3">min_max_by(enumerable, fun, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a tuple with the minimal and the maximal elements in the
enumerable as calculated by the given function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#random/1">random(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a random element of an enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reduce/2">reduce(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Invokes <code class="inline">fun</code> for each element in the <code class="inline">enumerable</code> with the
accumulator</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reduce/3">reduce(enumerable, acc, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Invokes <code class="inline">fun</code> for each element in the <code class="inline">enumerable</code> with the accumulator</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reduce_while/3">reduce_while(enumerable, acc, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Reduces the enumerable until <code class="inline">fun</code> returns <code class="inline">{:halt, term}</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reject/2">reject(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a list of elements in <code class="inline">enumerable</code> excluding those for which the function <code class="inline">fun</code> returns
a truthy value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reverse/1">reverse(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a list of elements in <code class="inline">enumerable</code> in reverse order</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reverse/2">reverse(enumerable, tail)</a>
  </div>
    <div class="summary-synopsis"><p>Reverses the elements in <code class="inline">enumerable</code>, appends the <code class="inline">tail</code>, and returns
it as a list</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reverse_slice/3">reverse_slice(enumerable, start, count)</a>
  </div>
    <div class="summary-synopsis"><p>Reverses the enumerable in the range from initial position <code class="inline">start</code>
through <code class="inline">count</code> elements</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#scan/2">scan(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Applies the given function to each element in the enumerable,
storing the result in a list and passing it as the accumulator
for the next computation. Uses the first element in the enumerable
as the starting value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#scan/3">scan(enumerable, acc, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Applies the given function to each element in the enumerable,
storing the result in a list and passing it as the accumulator
for the next computation. Uses the given <code class="inline">acc</code> as the starting value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#shuffle/1">shuffle(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a list with the elements of <code class="inline">enumerable</code> shuffled</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#slice/2">slice(enumerable, arg)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a subset list of the given enumerable, from <code class="inline">range.first</code> to <code class="inline">range.last</code> positions</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#slice/3">slice(enumerable, start, amount)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a subset list of the given enumerable, from <code class="inline">start</code> position with <code class="inline">amount</code> of elements if available</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#sort/1">sort(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Sorts the enumerable according to Erlang’s term ordering</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#sort/2">sort(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Sorts the enumerable by the given function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#sort_by/3">sort_by(enumerable, mapper, sorter \\ &amp;&lt;=/2)</a>
  </div>
    <div class="summary-synopsis"><p>Sorts the mapped results of the enumerable according to the provided <code class="inline">sorter</code>
function</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#split/2">split(enumerable, count)</a>
  </div>
    <div class="summary-synopsis"><p>Splits the <code class="inline">enumerable</code> into two enumerables, leaving <code class="inline">count</code>
elements in the first one</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#split_while/2">split_while(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Splits enumerable in two at the position of the element for which
<code class="inline">fun</code> returns <code class="inline">false</code> for the first time</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#split_with/2">split_with(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Splits the <code class="inline">enumerable</code> in two lists according to the given function <code class="inline">fun</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#sum/1">sum(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the sum of all elements</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#take/2">take(enumerable, amount)</a>
  </div>
    <div class="summary-synopsis"><p>Takes the first <code class="inline">amount</code> items from the enumerable</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#take_every/2">take_every(enumerable, nth)</a>
  </div>
    <div class="summary-synopsis"><p>Returns a list of every <code class="inline">nth</code> item in the enumerable,
starting with the first element</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#take_random/2">take_random(enumerable, count)</a>
  </div>
    <div class="summary-synopsis"><p>Takes <code class="inline">count</code> random items from <code class="inline">enumerable</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#take_while/2">take_while(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Takes the items from the beginning of the enumerable while <code class="inline">fun</code> returns
a truthy value</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#to_list/1">to_list(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Converts <code class="inline">enumerable</code> to a list</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#uniq/1">uniq(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Enumerates the <code class="inline">enumerable</code>, removing all duplicated elements</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#uniq_by/2">uniq_by(enumerable, fun)</a>
  </div>
    <div class="summary-synopsis"><p>Enumerates the <code class="inline">enumerable</code>, by removing the elements for which
function <code class="inline">fun</code> returned duplicate items</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#unzip/1">unzip(enumerable)</a>
  </div>
    <div class="summary-synopsis"><p>Opposite of <a href="Enum.html#zip/2"><code class="inline">Enum.zip/2</code></a>; extracts a two-element tuples from the
enumerable and groups them together</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#with_index/2">with_index(enumerable, offset \\ 0)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the enumerable with each element wrapped in a tuple
alongside its index</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#zip/1">zip(enumerables)</a>
  </div>
    <div class="summary-synopsis"><p>Zips corresponding elements from a finite collection of enumerables
into one list of tuples</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#zip/2">zip(enumerable1, enumerable2)</a>
  </div>
    <div class="summary-synopsis"><p>Zips corresponding elements from two enumerables into one list
of tuples</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:acc/0">
    <div class="detail-header">
    <a href="#t:acc/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">acc()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L250" 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>acc() :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
<div class="detail" id="t:default/0">
    <div class="detail-header">
    <a href="#t:default/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">default()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L253" 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>default() :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
<div class="detail" id="t:element/0">
    <div class="detail-header">
    <a href="#t:element/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">element()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L251" 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>element() :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
<div class="detail" id="t:index/0">
    <div class="detail-header">
    <a href="#t:index/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">index()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L252" 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>index() :: <a href="typespecs.html#basic-types">integer</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
<div class="detail" id="t:t/0">
    <div class="detail-header">
    <a href="#t:t/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">t()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L249" 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>t() :: <a href="Enumerable.html#t:t/0">Enumerable.t</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="all?/2">
  
    <span id="all?/1"></span>
  <div class="detail-header">
    <a href="#all?/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">all?(enumerable, fun \\ fn x -&gt; x end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L306" 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>all?(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: <a href="typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns <code class="inline">true</code> if the given <code class="inline">fun</code> evaluates to true on all of the items in the enumerable.</p>
<p>It stops the iteration at the first invocation that returns <code class="inline">false</code> or <code class="inline">nil</code>.</p>
<h2 id="all?/2-examples" class="section-heading">
  <a href="#all?/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">Enum</span><span class="o">.</span><span class="n">all?</span><span class="p" data-group-id="4800174193-1">(</span><span class="p" data-group-id="4800174193-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="4800174193-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4800174193-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="n">rem</span><span class="p" data-group-id="4800174193-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4800174193-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="4800174193-3">end</span><span class="p" data-group-id="4800174193-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">Enum</span><span class="o">.</span><span class="n">all?</span><span class="p" data-group-id="4800174193-5">(</span><span class="p" data-group-id="4800174193-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="4800174193-6">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4800174193-7">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="n">rem</span><span class="p" data-group-id="4800174193-8">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4800174193-8">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="4800174193-7">end</span><span class="p" data-group-id="4800174193-5">)</span><span class="w">
</span><span class="no">false</span></code></pre>
<p>If no function is given, it defaults to checking if
all items in the enumerable are truthy values.</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">all?</span><span class="p" data-group-id="2451375889-1">(</span><span class="p" data-group-id="2451375889-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2451375889-2">]</span><span class="p" data-group-id="2451375889-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">Enum</span><span class="o">.</span><span class="n">all?</span><span class="p" data-group-id="2451375889-3">(</span><span class="p" data-group-id="2451375889-4">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2451375889-4">]</span><span class="p" data-group-id="2451375889-3">)</span><span class="w">
</span><span class="no">false</span></code></pre>
  </section>
</div>
<div class="detail" id="any?/2">
  
    <span id="any?/1"></span>
  <div class="detail-header">
    <a href="#any?/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">any?(enumerable, fun \\ fn x -&gt; x end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L344" 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>any?(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: <a href="typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns <code class="inline">true</code> if the given <code class="inline">fun</code> evaluates to true on any of the items in the enumerable.</p>
<p>It stops the iteration at the first invocation that returns a truthy value (neither <code class="inline">false</code> nor <code class="inline">nil</code>).</p>
<h2 id="any?/2-examples" class="section-heading">
  <a href="#any?/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">Enum</span><span class="o">.</span><span class="n">any?</span><span class="p" data-group-id="4788164369-1">(</span><span class="p" data-group-id="4788164369-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="4788164369-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4788164369-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="n">rem</span><span class="p" data-group-id="4788164369-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4788164369-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="4788164369-3">end</span><span class="p" data-group-id="4788164369-1">)</span><span class="w">
</span><span class="no">false</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">any?</span><span class="p" data-group-id="4788164369-5">(</span><span class="p" data-group-id="4788164369-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="4788164369-6">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4788164369-7">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="n">rem</span><span class="p" data-group-id="4788164369-8">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4788164369-8">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="4788164369-7">end</span><span class="p" data-group-id="4788164369-5">)</span><span class="w">
</span><span class="no">true</span></code></pre>
<p>If no function is given, it defaults to checking if at least one item
in the enumerable is a truthy value.</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">any?</span><span class="p" data-group-id="4835456699-1">(</span><span class="p" data-group-id="4835456699-2">[</span><span class="no">false</span><span class="p">,</span><span class="w"> </span><span class="no">false</span><span class="p">,</span><span class="w"> </span><span class="no">false</span><span class="p" data-group-id="4835456699-2">]</span><span class="p" data-group-id="4835456699-1">)</span><span class="w">
</span><span class="no">false</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">any?</span><span class="p" data-group-id="4835456699-3">(</span><span class="p" data-group-id="4835456699-4">[</span><span class="no">false</span><span class="p">,</span><span class="w"> </span><span class="no">true</span><span class="p">,</span><span class="w"> </span><span class="no">false</span><span class="p" data-group-id="4835456699-4">]</span><span class="p" data-group-id="4835456699-3">)</span><span class="w">
</span><span class="no">true</span></code></pre>
  </section>
</div>
<div class="detail" id="at/3">
  
    <span id="at/2"></span>
  <div class="detail-header">
    <a href="#at/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">at(enumerable, index, default \\ nil)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L376" 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>at(<a href="#t:t/0">t</a>(), <a href="#t:index/0">index</a>(), <a href="#t:default/0">default</a>()) :: <a href="#t:element/0">element</a>() | <a href="#t:default/0">default</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Finds the element at the given <code class="inline">index</code> (zero-based).</p>
<p>Returns <code class="inline">default</code> if <code class="inline">index</code> is out of bounds.</p>
<p>A negative <code class="inline">index</code> can be passed, which means the <code class="inline">enumerable</code> is
enumerated once and the <code class="inline">index</code> is counted from the end (e.g.
<code class="inline">-1</code> finds the last element).</p>
<h2 id="at/3-examples" class="section-heading">
  <a href="#at/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">Enum</span><span class="o">.</span><span class="n">at</span><span class="p" data-group-id="9974020167-1">(</span><span class="p" data-group-id="9974020167-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="9974020167-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="9974020167-1">)</span><span class="w">
</span><span class="mi">2</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">at</span><span class="p" data-group-id="9974020167-3">(</span><span class="p" data-group-id="9974020167-4">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="9974020167-4">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="9974020167-3">)</span><span class="w">
</span><span class="mi">6</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">at</span><span class="p" data-group-id="9974020167-5">(</span><span class="p" data-group-id="9974020167-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="9974020167-6">]</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="9974020167-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">Enum</span><span class="o">.</span><span class="n">at</span><span class="p" data-group-id="9974020167-7">(</span><span class="p" data-group-id="9974020167-8">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="9974020167-8">]</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">:none</span><span class="p" data-group-id="9974020167-7">)</span><span class="w">
</span><span class="ss">:none</span></code></pre>
  </section>
</div>
<div class="detail" id="chunk_by/2">
    <div class="detail-header">
    <a href="#chunk_by/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">chunk_by(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L519" 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>chunk_by(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: [<a href="typespecs.html#built-in-types">list</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Splits enumerable on every element for which <code class="inline">fun</code> returns a new
value.</p>
<p>Returns a list of lists.</p>
<h2 id="chunk_by/2-examples" class="section-heading">
  <a href="#chunk_by/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">Enum</span><span class="o">.</span><span class="n">chunk_by</span><span class="p" data-group-id="5867706949-1">(</span><span class="p" data-group-id="5867706949-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p" data-group-id="5867706949-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="5867706949-3">(</span><span class="n">rem</span><span class="p" data-group-id="5867706949-4">(</span><span class="ni">&amp;1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="5867706949-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="5867706949-3">)</span><span class="p" data-group-id="5867706949-1">)</span><span class="w">
</span><span class="p" data-group-id="5867706949-5">[</span><span class="p" data-group-id="5867706949-6">[</span><span class="mi">1</span><span class="p" data-group-id="5867706949-6">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5867706949-7">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="5867706949-7">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5867706949-8">[</span><span class="mi">3</span><span class="p" data-group-id="5867706949-8">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5867706949-9">[</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5867706949-9">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5867706949-10">[</span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p" data-group-id="5867706949-10">]</span><span class="p" data-group-id="5867706949-5">]</span></code></pre>
  </section>
</div>
<div class="detail" id="chunk_every/2">
    <div class="detail-header">
    <a href="#chunk_every/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">chunk_every(enumerable, count)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L407" 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>chunk_every(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">pos_integer</a>()) :: [<a href="typespecs.html#built-in-types">list</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Shortcut to <code class="inline">chunk_every(enumerable, count, count)</code>.</p>
  </section>
</div>
<div class="detail" id="chunk_every/4">
  
    <span id="chunk_every/3"></span>
  <div class="detail-header">
    <a href="#chunk_every/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">chunk_every(enumerable, count, step, leftover \\ [])</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L447" 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>chunk_every(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">pos_integer</a>(), <a href="typespecs.html#basic-types">pos_integer</a>(), <a href="#t:t/0">t</a>() | :discard) :: [<a href="typespecs.html#built-in-types">list</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns list of lists containing <code class="inline">count</code> items each, where
each new chunk starts <code class="inline">step</code> elements into the enumerable.</p>
<p><code class="inline">step</code> is optional and, if not passed, defaults to <code class="inline">count</code>, i.e.
chunks do not overlap.</p>
<p>If the last chunk does not have <code class="inline">count</code> elements to fill the chunk,
elements are taken from <code class="inline">leftover</code> to fill in the chunk. If <code class="inline">leftover</code>
does not have enough elements to fill the chunk, then a partial chunk
is returned with less than <code class="inline">count</code> elements.</p>
<p>If <code class="inline">:discard</code> is given in <code class="inline">leftover</code>, the last chunk is discarded
unless it has exactly <code class="inline">count</code> elements.</p>
<h2 id="chunk_every/4-examples" class="section-heading">
  <a href="#chunk_every/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">Enum</span><span class="o">.</span><span class="n">chunk_every</span><span class="p" data-group-id="1946222649-1">(</span><span class="p" data-group-id="1946222649-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1946222649-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1946222649-1">)</span><span class="w">
</span><span class="p" data-group-id="1946222649-3">[</span><span class="p" data-group-id="1946222649-4">[</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="1946222649-4">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-5">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="1946222649-5">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-6">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1946222649-6">]</span><span class="p" data-group-id="1946222649-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">chunk_every</span><span class="p" data-group-id="1946222649-7">(</span><span class="p" data-group-id="1946222649-8">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1946222649-8">]</span><span class="p">,</span><span class="w"> </span><span class="mi">3</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">:discard</span><span class="p" data-group-id="1946222649-7">)</span><span class="w">
</span><span class="p" data-group-id="1946222649-9">[</span><span class="p" data-group-id="1946222649-10">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="1946222649-10">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-11">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="1946222649-11">]</span><span class="p" data-group-id="1946222649-9">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">chunk_every</span><span class="p" data-group-id="1946222649-12">(</span><span class="p" data-group-id="1946222649-13">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1946222649-13">]</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-14">[</span><span class="mi">7</span><span class="p" data-group-id="1946222649-14">]</span><span class="p" data-group-id="1946222649-12">)</span><span class="w">
</span><span class="p" data-group-id="1946222649-15">[</span><span class="p" data-group-id="1946222649-16">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="1946222649-16">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-17">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="1946222649-17">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-18">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p" data-group-id="1946222649-18">]</span><span class="p" data-group-id="1946222649-15">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">chunk_every</span><span class="p" data-group-id="1946222649-19">(</span><span class="p" data-group-id="1946222649-20">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="1946222649-20">]</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-21">[</span><span class="p" data-group-id="1946222649-21">]</span><span class="p" data-group-id="1946222649-19">)</span><span class="w">
</span><span class="p" data-group-id="1946222649-22">[</span><span class="p" data-group-id="1946222649-23">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="1946222649-23">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-24">[</span><span class="mi">4</span><span class="p" data-group-id="1946222649-24">]</span><span class="p" data-group-id="1946222649-22">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">chunk_every</span><span class="p" data-group-id="1946222649-25">(</span><span class="p" data-group-id="1946222649-26">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="1946222649-26">]</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="1946222649-25">)</span><span class="w">
</span><span class="p" data-group-id="1946222649-27">[</span><span class="p" data-group-id="1946222649-28">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="1946222649-28">]</span><span class="p" data-group-id="1946222649-27">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">chunk_every</span><span class="p" data-group-id="1946222649-29">(</span><span class="p" data-group-id="1946222649-30">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="1946222649-30">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-31">[</span><span class="p" data-group-id="1946222649-31">]</span><span class="p" data-group-id="1946222649-29">)</span><span class="w">
</span><span class="p" data-group-id="1946222649-32">[</span><span class="p" data-group-id="1946222649-33">[</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="1946222649-33">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1946222649-34">[</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="1946222649-34">]</span><span class="p" data-group-id="1946222649-32">]</span></code></pre>
  </section>
</div>
<div class="detail" id="chunk_while/4">
    <div class="detail-header">
    <a href="#chunk_while/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">chunk_while(enumerable, acc, chunk_fun, after_fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L490" 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>chunk_while(
  <a href="#t:t/0">t</a>(),
  <a href="#t:acc/0">acc</a>(),
  (<a href="#t:element/0">element</a>(), <a href="#t:acc/0">acc</a>() ->
     {:cont, chunk, <a href="#t:acc/0">acc</a>()} | {:cont, <a href="#t:acc/0">acc</a>()} | {:halt, <a href="#t:acc/0">acc</a>()}),
  (<a href="#t:acc/0">acc</a>() -> {:cont, chunk, <a href="#t:acc/0">acc</a>()} | {:cont, <a href="#t:acc/0">acc</a>()})
) :: <a href="Enumerable.html#t:t/0">Enumerable.t</a>()
when chunk: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Chunks the <code class="inline">enumerable</code> with fine grained control when every chunk is emitted.</p>
<p><code class="inline">chunk_fun</code> receives the current element and the accumulator and
must return <code class="inline">{:cont, element, acc}</code> to emit the given chunk and
continue with accumulator or <code class="inline">{:cont, acc}</code> to not emit any chunk
and continue with the return accumulator.</p>
<p><code class="inline">after_fun</code> is invoked when iteration is done and must also return
<code class="inline">{:cont, element, acc}</code> or <code class="inline">{:cont, acc}</code>.</p>
<p>Returns a list of lists.</p>
<h2 id="chunk_while/4-examples" class="section-heading">
  <a href="#chunk_while/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="n">chunk_fun</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k" data-group-id="1631053506-1">fn</span><span class="w"> </span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="n">acc</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="k">if</span><span class="w"> </span><span class="n">rem</span><span class="p" data-group-id="1631053506-2">(</span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1631053506-2">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="1631053506-3">do</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">    </span><span class="p" data-group-id="1631053506-4">{</span><span class="ss">:cont</span><span class="p">,</span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">reverse</span><span class="p" data-group-id="1631053506-5">(</span><span class="p" data-group-id="1631053506-6">[</span><span class="n">item</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">acc</span><span class="p" data-group-id="1631053506-6">]</span><span class="p" data-group-id="1631053506-5">)</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-7">[</span><span class="p" data-group-id="1631053506-7">]</span><span class="p" data-group-id="1631053506-4">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="k" data-group-id="1631053506-3">else</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">    </span><span class="p" data-group-id="1631053506-8">{</span><span class="ss">:cont</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-9">[</span><span class="n">item</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">acc</span><span class="p" data-group-id="1631053506-9">]</span><span class="p" data-group-id="1631053506-8">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="k" data-group-id="1631053506-3">end</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="1631053506-1">end</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="n">after_fun</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k" data-group-id="1631053506-10">fn</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="p" data-group-id="1631053506-11">[</span><span class="p" data-group-id="1631053506-11">]</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="1631053506-12">{</span><span class="ss">:cont</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-13">[</span><span class="p" data-group-id="1631053506-13">]</span><span class="p" data-group-id="1631053506-12">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="w">  </span><span class="n">acc</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="1631053506-14">{</span><span class="ss">:cont</span><span class="p">,</span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">reverse</span><span class="p" data-group-id="1631053506-15">(</span><span class="n">acc</span><span class="p" data-group-id="1631053506-15">)</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-16">[</span><span class="p" data-group-id="1631053506-16">]</span><span class="p" data-group-id="1631053506-14">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="1631053506-10">end</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">chunk_while</span><span class="p" data-group-id="1631053506-17">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-18">[</span><span class="p" data-group-id="1631053506-18">]</span><span class="p">,</span><span class="w"> </span><span class="n">chunk_fun</span><span class="p">,</span><span class="w"> </span><span class="n">after_fun</span><span class="p" data-group-id="1631053506-17">)</span><span class="w">
</span><span class="p" data-group-id="1631053506-19">[</span><span class="p" data-group-id="1631053506-20">[</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="1631053506-20">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-21">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="1631053506-21">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-22">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1631053506-22">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-23">[</span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p" data-group-id="1631053506-23">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1631053506-24">[</span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="1631053506-24">]</span><span class="p" data-group-id="1631053506-19">]</span></code></pre>
  </section>
</div>
<div class="detail" id="concat/1">
    <div class="detail-header">
    <a href="#concat/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">concat(enumerables)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L537" 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>concat(<a href="#t:t/0">t</a>()) :: <a href="#t:t/0">t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Given an enumerable of enumerables, concatenates the enumerables into
a single list.</p>
<h2 id="concat/1-examples" class="section-heading">
  <a href="#concat/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">Enum</span><span class="o">.</span><span class="n">concat</span><span class="p" data-group-id="7072536140-1">(</span><span class="p" data-group-id="7072536140-2">[</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="o">.</span><span class="o">.</span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="o">.</span><span class="o">.</span><span class="mi">9</span><span class="p" data-group-id="7072536140-2">]</span><span class="p" data-group-id="7072536140-1">)</span><span class="w">
</span><span class="p" data-group-id="7072536140-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p" data-group-id="7072536140-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">concat</span><span class="p" data-group-id="7072536140-4">(</span><span class="p" data-group-id="7072536140-5">[</span><span class="p" data-group-id="7072536140-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7072536140-7">[</span><span class="mi">2</span><span class="p" data-group-id="7072536140-7">]</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7072536140-6">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7072536140-8">[</span><span class="mi">4</span><span class="p" data-group-id="7072536140-8">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7072536140-9">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="7072536140-9">]</span><span class="p" data-group-id="7072536140-5">]</span><span class="p" data-group-id="7072536140-4">)</span><span class="w">
</span><span class="p" data-group-id="7072536140-10">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7072536140-11">[</span><span class="mi">2</span><span class="p" data-group-id="7072536140-11">]</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="7072536140-10">]</span></code></pre>
  </section>
</div>
<div class="detail" id="concat/2">
    <div class="detail-header">
    <a href="#concat/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">concat(left, right)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L563" 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>concat(<a href="#t:t/0">t</a>(), <a href="#t:t/0">t</a>()) :: <a href="#t:t/0">t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Concatenates the enumerable on the right with the enumerable on the
left.</p>
<p>This function produces the same result as the <a href="Kernel.html#++/2"><code class="inline">Kernel.++/2</code></a> operator
for lists.</p>
<h2 id="concat/2-examples" class="section-heading">
  <a href="#concat/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">Enum</span><span class="o">.</span><span class="n">concat</span><span class="p" data-group-id="5513604169-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="o">.</span><span class="o">.</span><span class="mi">6</span><span class="p" data-group-id="5513604169-1">)</span><span class="w">
</span><span class="p" data-group-id="5513604169-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5513604169-2">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">concat</span><span class="p" data-group-id="5513604169-3">(</span><span class="p" data-group-id="5513604169-4">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="5513604169-4">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5513604169-5">[</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5513604169-5">]</span><span class="p" data-group-id="5513604169-3">)</span><span class="w">
</span><span class="p" data-group-id="5513604169-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5513604169-6">]</span></code></pre>
  </section>
</div>
<div class="detail" id="count/1">
    <div class="detail-header">
    <a href="#count/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">count(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L581" 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>count(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#basic-types">non_neg_integer</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the size of the enumerable.</p>
<h2 id="count/1-examples" class="section-heading">
  <a href="#count/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">Enum</span><span class="o">.</span><span class="n">count</span><span class="p" data-group-id="0196496971-1">(</span><span class="p" data-group-id="0196496971-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0196496971-2">]</span><span class="p" data-group-id="0196496971-1">)</span><span class="w">
</span><span class="mi">3</span></code></pre>
  </section>
</div>
<div class="detail" id="count/2">
    <div class="detail-header">
    <a href="#count/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">count(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L602" 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>count(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: <a href="typespecs.html#basic-types">non_neg_integer</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the count of items in the enumerable for which <code class="inline">fun</code> returns
a truthy value.</p>
<h2 id="count/2-examples" class="section-heading">
  <a href="#count/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">Enum</span><span class="o">.</span><span class="n">count</span><span class="p" data-group-id="6735176272-1">(</span><span class="p" data-group-id="6735176272-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="6735176272-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="6735176272-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="n">rem</span><span class="p" data-group-id="6735176272-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6735176272-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="6735176272-3">end</span><span class="p" data-group-id="6735176272-1">)</span><span class="w">
</span><span class="mi">2</span></code></pre>
  </section>
</div>
<div class="detail" id="dedup/1">
    <div class="detail-header">
    <a href="#dedup/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">dedup(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L627" 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>dedup(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Enumerates the <code class="inline">enumerable</code>, returning a list where all consecutive
duplicated elements are collapsed to a single element.</p>
<p>Elements are compared using <a href="Kernel.html#===/2"><code class="inline">===/2</code></a>.</p>
<p>If you want to remove all duplicated elements, regardless of order,
see <a href="#uniq/1"><code class="inline">uniq/1</code></a>.</p>
<h2 id="dedup/1-examples" class="section-heading">
  <a href="#dedup/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">Enum</span><span class="o">.</span><span class="n">dedup</span><span class="p" data-group-id="2245966341-1">(</span><span class="p" data-group-id="2245966341-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2245966341-2">]</span><span class="p" data-group-id="2245966341-1">)</span><span class="w">
</span><span class="p" data-group-id="2245966341-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2245966341-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">dedup</span><span class="p" data-group-id="2245966341-4">(</span><span class="p" data-group-id="2245966341-5">[</span><span class="mi">1</span><span class="p">,</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="p">,</span><span class="w"> </span><span class="mf">2.0</span><span class="p">,</span><span class="w"> </span><span class="ss">:three</span><span class="p">,</span><span class="w"> </span><span class="ss">:three</span><span class="p" data-group-id="2245966341-5">]</span><span class="p" data-group-id="2245966341-4">)</span><span class="w">
</span><span class="p" data-group-id="2245966341-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mf">2.0</span><span class="p">,</span><span class="w"> </span><span class="ss">:three</span><span class="p" data-group-id="2245966341-6">]</span></code></pre>
  </section>
</div>
<div class="detail" id="dedup_by/2">
    <div class="detail-header">
    <a href="#dedup_by/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">dedup_by(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L648" 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>dedup_by(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">term</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Enumerates the <code class="inline">enumerable</code>, returning a list where all consecutive
duplicated elements are collapsed to a single element.</p>
<p>The function <code class="inline">fun</code> maps every element to a term which is used to
determine if two elements are duplicates.</p>
<h2 id="dedup_by/2-examples" class="section-heading">
  <a href="#dedup_by/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">Enum</span><span class="o">.</span><span class="n">dedup_by</span><span class="p" data-group-id="1445415481-1">(</span><span class="p" data-group-id="1445415481-2">[</span><span class="p" data-group-id="1445415481-3">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="1445415481-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1445415481-4">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="1445415481-4">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1445415481-5">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p" data-group-id="1445415481-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1445415481-6">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="1445415481-6">}</span><span class="p" data-group-id="1445415481-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1445415481-7">fn</span><span class="w"> </span><span class="p" data-group-id="1445415481-8">{</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="bp">_</span><span class="p" data-group-id="1445415481-8">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k" data-group-id="1445415481-7">end</span><span class="p" data-group-id="1445415481-1">)</span><span class="w">
</span><span class="p" data-group-id="1445415481-9">[</span><span class="p" data-group-id="1445415481-10">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="1445415481-10">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1445415481-11">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="1445415481-11">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1445415481-12">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="1445415481-12">}</span><span class="p" data-group-id="1445415481-9">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">dedup_by</span><span class="p" data-group-id="1445415481-13">(</span><span class="p" data-group-id="1445415481-14">[</span><span class="mi">5</span><span class="p">,</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="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="1445415481-14">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1445415481-15">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="n">x</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k" data-group-id="1445415481-15">end</span><span class="p" data-group-id="1445415481-13">)</span><span class="w">
</span><span class="p" data-group-id="1445415481-16">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1445415481-16">]</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(enumerable, amount)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L686" 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="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">integer</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Drops the <code class="inline">amount</code> of items from the enumerable.</p>
<p>If a negative <code class="inline">amount</code> is given, the <code class="inline">amount</code> of last values will be dropped.
The <code class="inline">enumerable</code> will be enumerated once to retrieve the proper index and
the remaining calculation is performed from the end.</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">Enum</span><span class="o">.</span><span class="n">drop</span><span class="p" data-group-id="0498864209-1">(</span><span class="p" data-group-id="0498864209-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0498864209-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0498864209-1">)</span><span class="w">
</span><span class="p" data-group-id="0498864209-3">[</span><span class="mi">3</span><span class="p" data-group-id="0498864209-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">drop</span><span class="p" data-group-id="0498864209-4">(</span><span class="p" data-group-id="0498864209-5">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0498864209-5">]</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="0498864209-4">)</span><span class="w">
</span><span class="p" data-group-id="0498864209-6">[</span><span class="p" data-group-id="0498864209-6">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">drop</span><span class="p" data-group-id="0498864209-7">(</span><span class="p" data-group-id="0498864209-8">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0498864209-8">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="0498864209-7">)</span><span class="w">
</span><span class="p" data-group-id="0498864209-9">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0498864209-9">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">drop</span><span class="p" data-group-id="0498864209-10">(</span><span class="p" data-group-id="0498864209-11">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0498864209-11">]</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p" data-group-id="0498864209-10">)</span><span class="w">
</span><span class="p" data-group-id="0498864209-12">[</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="0498864209-12">]</span></code></pre>
  </section>
</div>
<div class="detail" id="drop_every/2">
    <div class="detail-header">
    <a href="#drop_every/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_every(enumerable, nth)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L725" 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_every(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">non_neg_integer</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a list of every <code class="inline">nth</code> item in the enumerable dropped,
starting with the first element.</p>
<p>The first item is always dropped, unless <code class="inline">nth</code> is 0.</p>
<p>The second argument specifying every <code class="inline">nth</code> item must be a non-negative
integer.</p>
<h2 id="drop_every/2-examples" class="section-heading">
  <a href="#drop_every/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">Enum</span><span class="o">.</span><span class="n">drop_every</span><span class="p" data-group-id="7905401313-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7905401313-1">)</span><span class="w">
</span><span class="p" data-group-id="7905401313-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="7905401313-2">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">drop_every</span><span class="p" data-group-id="7905401313-3">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="7905401313-3">)</span><span class="w">
</span><span class="p" data-group-id="7905401313-4">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="7905401313-4">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">drop_every</span><span class="p" data-group-id="7905401313-5">(</span><span class="p" data-group-id="7905401313-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7905401313-6">]</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7905401313-5">)</span><span class="w">
</span><span class="p" data-group-id="7905401313-7">[</span><span class="p" data-group-id="7905401313-7">]</span></code></pre>
  </section>
</div>
<div class="detail" id="drop_while/2">
    <div class="detail-header">
    <a href="#drop_while/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_while(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L745" 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_while(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Drops items at the beginning of the enumerable while <code class="inline">fun</code> returns a
truthy value.</p>
<h2 id="drop_while/2-examples" class="section-heading">
  <a href="#drop_while/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">Enum</span><span class="o">.</span><span class="n">drop_while</span><span class="p" data-group-id="7217205976-1">(</span><span class="p" data-group-id="7217205976-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7217205976-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7217205976-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="n">x</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k" data-group-id="7217205976-3">end</span><span class="p" data-group-id="7217205976-1">)</span><span class="w">
</span><span class="p" data-group-id="7217205976-4">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7217205976-4">]</span></code></pre>
  </section>
</div>
<div class="detail" id="each/2">
    <div class="detail-header">
    <a href="#each/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">each(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L769" 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>each(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: :ok</pre>
      </div>
  </div>
  <section class="docstring">
<p>Invokes the given <code class="inline">fun</code> for each item in the enumerable.</p>
<p>Returns <code class="inline">:ok</code>.</p>
<h2 id="each/2-examples" class="section-heading">
  <a href="#each/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="nc">Enum</span><span class="o">.</span><span class="n">each</span><span class="p" data-group-id="5549208764-1">(</span><span class="p" data-group-id="5549208764-2">[</span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;example&quot;</span><span class="p" data-group-id="5549208764-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="5549208764-3">fn</span><span class="p" data-group-id="5549208764-4">(</span><span class="n">x</span><span class="p" data-group-id="5549208764-4">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="nc">IO</span><span class="o">.</span><span class="n">puts</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k" data-group-id="5549208764-3">end</span><span class="p" data-group-id="5549208764-1">)</span><span class="w">
</span><span class="s">&quot;some&quot;</span><span class="w">
</span><span class="s">&quot;example&quot;</span><span class="w">
</span><span class="c1">#=&gt; :ok</span></code></pre>
  </section>
</div>
<div class="detail" id="empty?/1">
    <div class="detail-header">
    <a href="#empty?/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">empty?(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L797" 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>empty?(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Determines if the enumerable is empty.</p>
<p>Returns <code class="inline">true</code> if <code class="inline">enumerable</code> is empty, otherwise <code class="inline">false</code>.</p>
<h2 id="empty?/1-examples" class="section-heading">
  <a href="#empty?/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">Enum</span><span class="o">.</span><span class="n">empty?</span><span class="p" data-group-id="4322041975-1">(</span><span class="p" data-group-id="4322041975-2">[</span><span class="p" data-group-id="4322041975-2">]</span><span class="p" data-group-id="4322041975-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">Enum</span><span class="o">.</span><span class="n">empty?</span><span class="p" data-group-id="4322041975-3">(</span><span class="p" data-group-id="4322041975-4">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4322041975-4">]</span><span class="p" data-group-id="4322041975-3">)</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!(enumerable, index)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L860" 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="#t:t/0">t</a>(), <a href="#t:index/0">index</a>()) :: <a href="#t:element/0">element</a>() | <a href="typespecs.html#built-in-types">no_return</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Finds the element at the given <code class="inline">index</code> (zero-based).</p>
<p>Raises <code class="inline">OutOfBoundsError</code> if the given <code class="inline">index</code> is outside the range of
the enumerable.</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">Enum</span><span class="o">.</span><span class="n">fetch!</span><span class="p" data-group-id="5907605527-1">(</span><span class="p" data-group-id="5907605527-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5907605527-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="5907605527-1">)</span><span class="w">
</span><span class="mi">2</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">fetch!</span><span class="p" data-group-id="5907605527-3">(</span><span class="p" data-group-id="5907605527-4">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5907605527-4">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="5907605527-3">)</span><span class="w">
</span><span class="mi">6</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">fetch!</span><span class="p" data-group-id="5907605527-5">(</span><span class="p" data-group-id="5907605527-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5907605527-6">]</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="5907605527-5">)</span><span class="w">
</span><span class="gt">** (Enum.OutOfBoundsError) out of bounds error</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(enumerable, index)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L834" 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="#t:t/0">t</a>(), <a href="#t:index/0">index</a>()) :: {:ok, <a href="#t:element/0">element</a>()} | :error</pre>
      </div>
  </div>
  <section class="docstring">
<p>Finds the element at the given <code class="inline">index</code> (zero-based).</p>
<p>Returns <code class="inline">{:ok, element}</code> if found, otherwise <code class="inline">:error</code>.</p>
<p>A negative <code class="inline">index</code> can be passed, which means the <code class="inline">enumerable</code> is
enumerated once and the <code class="inline">index</code> is counted from the end (e.g.
<code class="inline">-1</code> fetches the last element).</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">Enum</span><span class="o">.</span><span class="n">fetch</span><span class="p" data-group-id="1727944262-1">(</span><span class="p" data-group-id="1727944262-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1727944262-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="1727944262-1">)</span><span class="w">
</span><span class="p" data-group-id="1727944262-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1727944262-3">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">fetch</span><span class="p" data-group-id="1727944262-4">(</span><span class="p" data-group-id="1727944262-5">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1727944262-5">]</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">3</span><span class="p" data-group-id="1727944262-4">)</span><span class="w">
</span><span class="p" data-group-id="1727944262-6">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1727944262-6">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">fetch</span><span class="p" data-group-id="1727944262-7">(</span><span class="p" data-group-id="1727944262-8">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1727944262-8">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1727944262-7">)</span><span class="w">
</span><span class="p" data-group-id="1727944262-9">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1727944262-9">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">fetch</span><span class="p" data-group-id="1727944262-10">(</span><span class="p" data-group-id="1727944262-11">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="1727944262-11">]</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="1727944262-10">)</span><span class="w">
</span><span class="ss">:error</span></code></pre>
  </section>
</div>
<div class="detail" id="filter/2">
    <div class="detail-header">
    <a href="#filter/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">filter(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L899" 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>filter(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Filters the enumerable, i.e. returns only those elements
for which <code class="inline">fun</code> returns a truthy value.</p>
<p>See also <a href="#reject/2"><code class="inline">reject/2</code></a> which discards all elements where the
function a truthy value.</p>
<h2 id="filter/2-examples" class="section-heading">
  <a href="#filter/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">Enum</span><span class="o">.</span><span class="n">filter</span><span class="p" data-group-id="7238295349-1">(</span><span class="p" data-group-id="7238295349-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7238295349-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7238295349-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="n">rem</span><span class="p" data-group-id="7238295349-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7238295349-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="7238295349-3">end</span><span class="p" data-group-id="7238295349-1">)</span><span class="w">
</span><span class="p" data-group-id="7238295349-5">[</span><span class="mi">2</span><span class="p" data-group-id="7238295349-5">]</span></code></pre>
<p>Keep in mind that <code class="inline">filter</code> is not capable of filtering and
transforming an element at the same time. If you would like
to do so, consider using <a href="#flat_map/2"><code class="inline">flat_map/2</code></a>. For example, if you
want to convert all strings that represent an integer and
discard the invalid one in one pass:</p>
<pre><code class="nohighlight makeup elixir"><span class="n">strings</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="7945812831-1">[</span><span class="s">&quot;1234&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;abc&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;12ab&quot;</span><span class="p" data-group-id="7945812831-1">]</span><span class="w">
</span><span class="nc">Enum</span><span class="o">.</span><span class="n">flat_map</span><span class="p" data-group-id="7945812831-2">(</span><span class="n">strings</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7945812831-3">fn</span><span class="w"> </span><span class="n">string</span><span class="w"> </span><span class="o">-&gt;</span><span class="w">
  </span><span class="k">case</span><span class="w"> </span><span class="nc">Integer</span><span class="o">.</span><span class="n">parse</span><span class="p" data-group-id="7945812831-4">(</span><span class="n">string</span><span class="p" data-group-id="7945812831-4">)</span><span class="w"> </span><span class="k" data-group-id="7945812831-5">do</span><span class="w">
    </span><span class="p" data-group-id="7945812831-6">{</span><span class="n">int</span><span class="p">,</span><span class="w"> </span><span class="c">_rest</span><span class="p" data-group-id="7945812831-6">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="7945812831-7">[</span><span class="n">int</span><span class="p" data-group-id="7945812831-7">]</span><span class="w"> </span><span class="c1"># transform to integer</span><span class="w">
    </span><span class="ss">:error</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="7945812831-8">[</span><span class="p" data-group-id="7945812831-8">]</span><span class="w"> </span><span class="c1"># skip the value</span><span class="w">
  </span><span class="k" data-group-id="7945812831-5">end</span><span class="w">
</span><span class="k" data-group-id="7945812831-3">end</span><span class="p" data-group-id="7945812831-2">)</span></code></pre>
  </section>
</div>
<div class="detail" id="find/3">
  
    <span id="find/2"></span>
  <div class="detail-header">
    <a href="#find/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">find(enumerable, default \\ nil, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L939" 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>find(<a href="#t:t/0">t</a>(), <a href="#t:default/0">default</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="#t:element/0">element</a>() | <a href="#t:default/0">default</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the first item for which <code class="inline">fun</code> returns a truthy value.
If no such item is found, returns <code class="inline">default</code>.</p>
<h2 id="find/3-examples" class="section-heading">
  <a href="#find/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">Enum</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="3195373885-1">(</span><span class="p" data-group-id="3195373885-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="3195373885-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3195373885-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="n">rem</span><span class="p" data-group-id="3195373885-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="3195373885-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="3195373885-3">end</span><span class="p" data-group-id="3195373885-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">Enum</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="3195373885-5">(</span><span class="p" data-group-id="3195373885-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="3195373885-6">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3195373885-7">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="n">rem</span><span class="p" data-group-id="3195373885-8">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="3195373885-8">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="3195373885-7">end</span><span class="p" data-group-id="3195373885-5">)</span><span class="w">
</span><span class="mi">0</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">find</span><span class="p" data-group-id="3195373885-9">(</span><span class="p" data-group-id="3195373885-10">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="3195373885-10">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3195373885-11">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="n">rem</span><span class="p" data-group-id="3195373885-12">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="3195373885-12">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="3195373885-11">end</span><span class="p" data-group-id="3195373885-9">)</span><span class="w">
</span><span class="mi">3</span></code></pre>
  </section>
</div>
<div class="detail" id="find_index/2">
    <div class="detail-header">
    <a href="#find_index/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">find_index(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L964" 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>find_index(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#basic-types">non_neg_integer</a>() | nil</pre>
      </div>
  </div>
  <section class="docstring">
<p>Similar to <a href="#find/3"><code class="inline">find/3</code></a>, but returns the index (zero-based)
of the element instead of the element itself.</p>
<h2 id="find_index/2-examples" class="section-heading">
  <a href="#find_index/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">Enum</span><span class="o">.</span><span class="n">find_index</span><span class="p" data-group-id="0648466591-1">(</span><span class="p" data-group-id="0648466591-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="0648466591-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="0648466591-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="n">rem</span><span class="p" data-group-id="0648466591-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0648466591-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="0648466591-3">end</span><span class="p" data-group-id="0648466591-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">Enum</span><span class="o">.</span><span class="n">find_index</span><span class="p" data-group-id="0648466591-5">(</span><span class="p" data-group-id="0648466591-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="0648466591-6">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="0648466591-7">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="n">rem</span><span class="p" data-group-id="0648466591-8">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0648466591-8">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="0648466591-7">end</span><span class="p" data-group-id="0648466591-5">)</span><span class="w">
</span><span class="mi">1</span></code></pre>
  </section>
</div>
<div class="detail" id="find_value/3">
  
    <span id="find_value/2"></span>
  <div class="detail-header">
    <a href="#find_value/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">find_value(enumerable, default \\ nil, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L999" 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>find_value(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">any</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#basic-types">any</a>() | nil</pre>
      </div>
  </div>
  <section class="docstring">
<p>Similar to <a href="#find/3"><code class="inline">find/3</code></a>, but returns the value of the function
invocation instead of the element itself.</p>
<h2 id="find_value/3-examples" class="section-heading">
  <a href="#find_value/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">Enum</span><span class="o">.</span><span class="n">find_value</span><span class="p" data-group-id="4499138929-1">(</span><span class="p" data-group-id="4499138929-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="4499138929-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4499138929-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="n">rem</span><span class="p" data-group-id="4499138929-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4499138929-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="4499138929-3">end</span><span class="p" data-group-id="4499138929-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">Enum</span><span class="o">.</span><span class="n">find_value</span><span class="p" data-group-id="4499138929-5">(</span><span class="p" data-group-id="4499138929-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="4499138929-6">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4499138929-7">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="n">rem</span><span class="p" data-group-id="4499138929-8">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4499138929-8">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k" data-group-id="4499138929-7">end</span><span class="p" data-group-id="4499138929-5">)</span><span class="w">
</span><span class="no">true</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">find_value</span><span class="p" data-group-id="4499138929-9">(</span><span class="p" data-group-id="4499138929-10">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4499138929-10">]</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;no bools!&quot;</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">is_boolean</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="4499138929-9">)</span><span class="w">
</span><span class="s">&quot;no bools!&quot;</span></code></pre>
  </section>
</div>
<div class="detail" id="flat_map/2">
    <div class="detail-header">
    <a href="#flat_map/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">flat_map(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1031" 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>flat_map(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="#t:t/0">t</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Maps the given <code class="inline">fun</code> over <code class="inline">enumerable</code> and flattens the result.</p>
<p>This function returns a new enumerable built by appending the result of invoking <code class="inline">fun</code>
on each element of <code class="inline">enumerable</code> together; conceptually, this is similar to a
combination of <a href="#map/2"><code class="inline">map/2</code></a> and <a href="#concat/1"><code class="inline">concat/1</code></a>.</p>
<h2 id="flat_map/2-examples" class="section-heading">
  <a href="#flat_map/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">Enum</span><span class="o">.</span><span class="n">flat_map</span><span class="p" data-group-id="8621915205-1">(</span><span class="p" data-group-id="8621915205-2">[</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">:c</span><span class="p" data-group-id="8621915205-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="8621915205-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="8621915205-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="8621915205-4">]</span><span class="w"> </span><span class="k" data-group-id="8621915205-3">end</span><span class="p" data-group-id="8621915205-1">)</span><span class="w">
</span><span class="p" data-group-id="8621915205-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">,</span><span class="w"> </span><span class="ss">:c</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p" data-group-id="8621915205-5">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">flat_map</span><span class="p" data-group-id="8621915205-6">(</span><span class="p" data-group-id="8621915205-7">[</span><span class="p" data-group-id="8621915205-8">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8621915205-8">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8621915205-9">{</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="8621915205-9">}</span><span class="p" data-group-id="8621915205-7">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="8621915205-10">fn</span><span class="w"> </span><span class="p" data-group-id="8621915205-11">{</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p" data-group-id="8621915205-11">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">x</span><span class="o">.</span><span class="o">.</span><span class="n">y</span><span class="w"> </span><span class="k" data-group-id="8621915205-10">end</span><span class="p" data-group-id="8621915205-6">)</span><span class="w">
</span><span class="p" data-group-id="8621915205-12">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="8621915205-12">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">flat_map</span><span class="p" data-group-id="8621915205-13">(</span><span class="p" data-group-id="8621915205-14">[</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">:c</span><span class="p" data-group-id="8621915205-14">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="8621915205-15">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="8621915205-16">[</span><span class="p" data-group-id="8621915205-17">[</span><span class="n">x</span><span class="p" data-group-id="8621915205-17">]</span><span class="p" data-group-id="8621915205-16">]</span><span class="w"> </span><span class="k" data-group-id="8621915205-15">end</span><span class="p" data-group-id="8621915205-13">)</span><span class="w">
</span><span class="p" data-group-id="8621915205-18">[</span><span class="p" data-group-id="8621915205-19">[</span><span class="ss">:a</span><span class="p" data-group-id="8621915205-19">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8621915205-20">[</span><span class="ss">:b</span><span class="p" data-group-id="8621915205-20">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8621915205-21">[</span><span class="ss">:c</span><span class="p" data-group-id="8621915205-21">]</span><span class="p" data-group-id="8621915205-18">]</span></code></pre>
  </section>
</div>
<div class="detail" id="flat_map_reduce/3">
    <div class="detail-header">
    <a href="#flat_map_reduce/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">flat_map_reduce(enumerable, acc, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1065" 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>flat_map_reduce(<a href="#t:t/0">t</a>(), acc, fun) :: {[<a href="typespecs.html#basic-types">any</a>()], <a href="typespecs.html#basic-types">any</a>()}
when fun: (<a href="#t:element/0">element</a>(), acc -> {<a href="#t:t/0">t</a>(), acc} | {:halt, acc}), acc: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Maps and reduces an enumerable, flattening the given results (only one level deep).</p>
<p>It expects an accumulator and a function that receives each enumerable
item, and must return a tuple containing a new enumerable (often a list)
with the new accumulator or a tuple with <code class="inline">:halt</code> as first element and
the accumulator as second.</p>
<h2 id="flat_map_reduce/3-examples" class="section-heading">
  <a href="#flat_map_reduce/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">enumerable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">100</span><span class="w">
</span><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">3</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">flat_map_reduce</span><span class="p" data-group-id="6707464774-1">(</span><span class="n">enumerable</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="6707464774-2">fn</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">acc</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="k">if</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="ss">do</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6707464774-3">{</span><span class="p" data-group-id="6707464774-4">[</span><span class="n">x</span><span class="p" data-group-id="6707464774-4">]</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="6707464774-3">}</span><span class="p">,</span><span class="w"> </span><span class="ss">else</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6707464774-5">{</span><span class="ss">:halt</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="p" data-group-id="6707464774-5">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="6707464774-2">end</span><span class="p" data-group-id="6707464774-1">)</span><span class="w">
</span><span class="p" data-group-id="6707464774-6">{</span><span class="p" data-group-id="6707464774-7">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="6707464774-7">]</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="6707464774-6">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">flat_map_reduce</span><span class="p" data-group-id="6707464774-8">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="6707464774-9">fn</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="6707464774-10">{</span><span class="p" data-group-id="6707464774-11">[</span><span class="p" data-group-id="6707464774-12">[</span><span class="n">x</span><span class="p" data-group-id="6707464774-12">]</span><span class="p" data-group-id="6707464774-11">]</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">x</span><span class="p" data-group-id="6707464774-10">}</span><span class="w"> </span><span class="k" data-group-id="6707464774-9">end</span><span class="p" data-group-id="6707464774-8">)</span><span class="w">
</span><span class="p" data-group-id="6707464774-13">{</span><span class="p" data-group-id="6707464774-14">[</span><span class="p" data-group-id="6707464774-15">[</span><span class="mi">1</span><span class="p" data-group-id="6707464774-15">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6707464774-16">[</span><span class="mi">2</span><span class="p" data-group-id="6707464774-16">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6707464774-17">[</span><span class="mi">3</span><span class="p" data-group-id="6707464774-17">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6707464774-18">[</span><span class="mi">4</span><span class="p" data-group-id="6707464774-18">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6707464774-19">[</span><span class="mi">5</span><span class="p" data-group-id="6707464774-19">]</span><span class="p" data-group-id="6707464774-14">]</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="6707464774-13">}</span></code></pre>
  </section>
</div>
<div class="detail" id="group_by/3">
  
    <span id="group_by/2"></span>
  <div class="detail-header">
    <a href="#group_by/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">group_by(enumerable, key_fun, value_fun \\ fn x -&gt; x end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1119" 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>group_by(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>()), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#basic-types">map</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Splits the enumerable into groups based on <code class="inline">key_fun</code>.</p>
<p>The result is a map where each key is given by <code class="inline">key_fun</code>
and each value is a list of elements given by <code class="inline">value_fun</code>.
The order of elements within each list is preserved from the enumerable.
However, like all maps, the resulting map is unordered.</p>
<h2 id="group_by/3-examples" class="section-heading">
  <a href="#group_by/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">Enum</span><span class="o">.</span><span class="n">group_by</span><span class="p" data-group-id="7332235239-1">(</span><span class="sx">~w{ant buffalo cat dingo}</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="7332235239-1">)</span><span class="w">
</span><span class="p" data-group-id="7332235239-2">%{</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="p" data-group-id="7332235239-3">[</span><span class="s">&quot;ant&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;cat&quot;</span><span class="p" data-group-id="7332235239-3">]</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="7332235239-4">[</span><span class="s">&quot;dingo&quot;</span><span class="p" data-group-id="7332235239-4">]</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="7332235239-5">[</span><span class="s">&quot;buffalo&quot;</span><span class="p" data-group-id="7332235239-5">]</span><span class="p" data-group-id="7332235239-2">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">group_by</span><span class="p" data-group-id="7332235239-6">(</span><span class="sx">~w{ant buffalo cat dingo}</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">first</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="7332235239-6">)</span><span class="w">
</span><span class="p" data-group-id="7332235239-7">%{</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="p" data-group-id="7332235239-8">[</span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;c&quot;</span><span class="p" data-group-id="7332235239-8">]</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="7332235239-9">[</span><span class="s">&quot;d&quot;</span><span class="p" data-group-id="7332235239-9">]</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="o">=</span><span class="o">&gt;</span><span class="w"> </span><span class="p" data-group-id="7332235239-10">[</span><span class="s">&quot;b&quot;</span><span class="p" data-group-id="7332235239-10">]</span><span class="p" data-group-id="7332235239-7">}</span></code></pre>
  </section>
</div>
<div class="detail" id="intersperse/2">
    <div class="detail-header">
    <a href="#intersperse/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">intersperse(enumerable, element)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1151" 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>intersperse(<a href="#t:t/0">t</a>(), <a href="#t:element/0">element</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Intersperses <code class="inline">element</code> between each element of the enumeration.</p>
<p>Complexity: O(n).</p>
<h2 id="intersperse/2-examples" class="section-heading">
  <a href="#intersperse/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">Enum</span><span class="o">.</span><span class="n">intersperse</span><span class="p" data-group-id="2100300310-1">(</span><span class="p" data-group-id="2100300310-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2100300310-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="2100300310-1">)</span><span class="w">
</span><span class="p" data-group-id="2100300310-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2100300310-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">intersperse</span><span class="p" data-group-id="2100300310-4">(</span><span class="p" data-group-id="2100300310-5">[</span><span class="mi">1</span><span class="p" data-group-id="2100300310-5">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="2100300310-4">)</span><span class="w">
</span><span class="p" data-group-id="2100300310-6">[</span><span class="mi">1</span><span class="p" data-group-id="2100300310-6">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">intersperse</span><span class="p" data-group-id="2100300310-7">(</span><span class="p" data-group-id="2100300310-8">[</span><span class="p" data-group-id="2100300310-8">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="2100300310-7">)</span><span class="w">
</span><span class="p" data-group-id="2100300310-9">[</span><span class="p" data-group-id="2100300310-9">]</span></code></pre>
  </section>
</div>
<div class="detail" id="into/2">
    <div class="detail-header">
    <a href="#into/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">into(enumerable, collectable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1209" 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>into(<a href="Enumerable.html#t:t/0">Enumerable.t</a>(), <a href="Collectable.html#t:t/0">Collectable.t</a>()) :: <a href="Collectable.html#t:t/0">Collectable.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Inserts the given <code class="inline">enumerable</code> into a <code class="inline">collectable</code>.</p>
<h2 id="into/2-examples" class="section-heading">
  <a href="#into/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">Enum</span><span class="o">.</span><span class="n">into</span><span class="p" data-group-id="7093237227-1">(</span><span class="p" data-group-id="7093237227-2">[</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="7093237227-2">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7093237227-3">[</span><span class="mi">0</span><span class="p" data-group-id="7093237227-3">]</span><span class="p" data-group-id="7093237227-1">)</span><span class="w">
</span><span class="p" data-group-id="7093237227-4">[</span><span class="mi">0</span><span class="p">,</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="p" data-group-id="7093237227-4">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">into</span><span class="p" data-group-id="7093237227-5">(</span><span class="p" data-group-id="7093237227-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="7093237227-6">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7093237227-7">%{</span><span class="p" data-group-id="7093237227-7">}</span><span class="p" data-group-id="7093237227-5">)</span><span class="w">
</span><span class="p" data-group-id="7093237227-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">2</span><span class="p" data-group-id="7093237227-8">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">into</span><span class="p" data-group-id="7093237227-9">(</span><span class="p" data-group-id="7093237227-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="7093237227-10">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7093237227-11">%{</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="7093237227-11">}</span><span class="p" data-group-id="7093237227-9">)</span><span class="w">
</span><span class="p" data-group-id="7093237227-12">%{</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="7093237227-12">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">into</span><span class="p" data-group-id="7093237227-13">(</span><span class="p" data-group-id="7093237227-14">[</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" data-group-id="7093237227-14">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7093237227-15">%{</span><span class="p" data-group-id="7093237227-15">}</span><span class="p" data-group-id="7093237227-13">)</span><span class="w">
</span><span class="p" data-group-id="7093237227-16">%{</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="7093237227-16">}</span></code></pre>
  </section>
</div>
<div class="detail" id="into/3">
    <div class="detail-header">
    <a href="#into/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">into(enumerable, collectable, transform)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1240" 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>into(<a href="Enumerable.html#t:t/0">Enumerable.t</a>(), <a href="Collectable.html#t:t/0">Collectable.t</a>(), (<a href="typespecs.html#built-in-types">term</a>() -> <a href="typespecs.html#built-in-types">term</a>())) :: <a href="Collectable.html#t:t/0">Collectable.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Inserts the given <code class="inline">enumerable</code> into a <code class="inline">collectable</code> according to the
transformation function.</p>
<h2 id="into/3-examples" class="section-heading">
  <a href="#into/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">Enum</span><span class="o">.</span><span class="n">into</span><span class="p" data-group-id="8271736742-1">(</span><span class="p" data-group-id="8271736742-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8271736742-2">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8271736742-3">[</span><span class="mi">3</span><span class="p" data-group-id="8271736742-3">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="8271736742-4">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="n">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k" data-group-id="8271736742-4">end</span><span class="p" data-group-id="8271736742-1">)</span><span class="w">
</span><span class="p" data-group-id="8271736742-5">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p" data-group-id="8271736742-5">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">into</span><span class="p" data-group-id="8271736742-6">(</span><span class="p" data-group-id="8271736742-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">b</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="8271736742-7">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8271736742-8">%{</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="8271736742-8">}</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="8271736742-9">fn</span><span class="w"> </span><span class="p" data-group-id="8271736742-10">{</span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p" data-group-id="8271736742-10">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="8271736742-11">{</span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="8271736742-11">}</span><span class="w"> </span><span class="k" data-group-id="8271736742-9">end</span><span class="p" data-group-id="8271736742-6">)</span><span class="w">
</span><span class="p" data-group-id="8271736742-12">%{</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">4</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="8271736742-12">}</span></code></pre>
  </section>
</div>
<div class="detail" id="join/2">
  
    <span id="join/1"></span>
  <div class="detail-header">
    <a href="#join/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">join(enumerable, joiner \\ &quot;&quot;)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1281" 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>join(<a href="#t:t/0">t</a>(), <a href="String.html#t:t/0">String.t</a>()) :: <a href="String.html#t:t/0">String.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Joins the given enumerable into a binary using <code class="inline">joiner</code> as a
separator.</p>
<p>If <code class="inline">joiner</code> is not passed at all, it defaults to the empty binary.</p>
<p>All items in the enumerable must be convertible to a binary,
otherwise an error is raised.</p>
<h2 id="join/2-examples" class="section-heading">
  <a href="#join/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">Enum</span><span class="o">.</span><span class="n">join</span><span class="p" data-group-id="2162054832-1">(</span><span class="p" data-group-id="2162054832-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2162054832-2">]</span><span class="p" data-group-id="2162054832-1">)</span><span class="w">
</span><span class="s">&quot;123&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">join</span><span class="p" data-group-id="2162054832-3">(</span><span class="p" data-group-id="2162054832-4">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2162054832-4">]</span><span class="p">,</span><span class="w"> </span><span class="s">&quot; = &quot;</span><span class="p" data-group-id="2162054832-3">)</span><span class="w">
</span><span class="s">&quot;1 = 2 = 3&quot;</span></code></pre>
  </section>
</div>
<div class="detail" id="map/2">
    <div class="detail-header">
    <a href="#map/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">map(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1317" 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>map(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a list where each item is the result of invoking
<code class="inline">fun</code> on each corresponding item of <code class="inline">enumerable</code>.</p>
<p>For maps, the function expects a key-value tuple.</p>
<h2 id="map/2-examples" class="section-heading">
  <a href="#map/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">Enum</span><span class="o">.</span><span class="n">map</span><span class="p" data-group-id="7382879315-1">(</span><span class="p" data-group-id="7382879315-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7382879315-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7382879315-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="n">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k" data-group-id="7382879315-3">end</span><span class="p" data-group-id="7382879315-1">)</span><span class="w">
</span><span class="p" data-group-id="7382879315-4">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="7382879315-4">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map</span><span class="p" data-group-id="7382879315-5">(</span><span class="p" data-group-id="7382879315-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="7382879315-6">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7382879315-7">fn</span><span class="w"> </span><span class="p" data-group-id="7382879315-8">{</span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p" data-group-id="7382879315-8">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="7382879315-9">{</span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="n">v</span><span class="p" data-group-id="7382879315-9">}</span><span class="w"> </span><span class="k" data-group-id="7382879315-7">end</span><span class="p" data-group-id="7382879315-5">)</span><span class="w">
</span><span class="p" data-group-id="7382879315-10">[</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="o">-</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="o">-</span><span class="mi">2</span><span class="p" data-group-id="7382879315-10">]</span></code></pre>
  </section>
</div>
<div class="detail" id="map_every/3">
    <div class="detail-header">
    <a href="#map_every/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">map_every(enumerable, nth, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1356" 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.4.0)</span>
    
      <div class="specs">
          <pre>map_every(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">non_neg_integer</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a list of results of invoking <code class="inline">fun</code> on every <code class="inline">nth</code>
item of <code class="inline">enumerable</code>, starting with the first element.</p>
<p>The first item is always passed to the given function, unless <code class="inline">nth</code> is <code class="inline">0</code>.</p>
<p>The second argument specifying every <code class="inline">nth</code> item must be a non-negative
integer.</p>
<p>If <code class="inline">nth</code> is <code class="inline">0</code>, then <code class="inline">enumerable</code> is directly converted to a list,
without <code class="inline">fun</code> being ever applied.</p>
<h2 id="map_every/3-examples" class="section-heading">
  <a href="#map_every/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">Enum</span><span class="o">.</span><span class="n">map_every</span><span class="p" data-group-id="4462450451-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4462450451-2">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="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1000</span><span class="w"> </span><span class="k" data-group-id="4462450451-2">end</span><span class="p" data-group-id="4462450451-1">)</span><span class="w">
</span><span class="p" data-group-id="4462450451-3">[</span><span class="mi">1001</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1003</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">1005</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">1007</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">1009</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="4462450451-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map_every</span><span class="p" data-group-id="4462450451-4">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4462450451-5">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="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1000</span><span class="w"> </span><span class="k" data-group-id="4462450451-5">end</span><span class="p" data-group-id="4462450451-4">)</span><span class="w">
</span><span class="p" data-group-id="4462450451-6">[</span><span class="mi">1001</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">1004</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">1007</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">1010</span><span class="p" data-group-id="4462450451-6">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map_every</span><span class="p" data-group-id="4462450451-7">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4462450451-8">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="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1000</span><span class="w"> </span><span class="k" data-group-id="4462450451-8">end</span><span class="p" data-group-id="4462450451-7">)</span><span class="w">
</span><span class="p" data-group-id="4462450451-9">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="4462450451-9">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map_every</span><span class="p" data-group-id="4462450451-10">(</span><span class="p" data-group-id="4462450451-11">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4462450451-11">]</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="4462450451-12">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="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1000</span><span class="w"> </span><span class="k" data-group-id="4462450451-12">end</span><span class="p" data-group-id="4462450451-10">)</span><span class="w">
</span><span class="p" data-group-id="4462450451-13">[</span><span class="mi">1001</span><span class="p">,</span><span class="w"> </span><span class="mi">1002</span><span class="p">,</span><span class="w"> </span><span class="mi">1003</span><span class="p" data-group-id="4462450451-13">]</span></code></pre>
  </section>
</div>
<div class="detail" id="map_join/3">
  
    <span id="map_join/2"></span>
  <div class="detail-header">
    <a href="#map_join/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">map_join(enumerable, joiner \\ &quot;&quot;, mapper)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1383" 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>map_join(<a href="#t:t/0">t</a>(), <a href="String.html#t:t/0">String.t</a>(), (<a href="#t:element/0">element</a>() -> <a href="String.Chars.html#t:t/0">String.Chars.t</a>())) :: <a href="String.html#t:t/0">String.t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Maps and joins the given enumerable in one pass.</p>
<p><code class="inline">joiner</code> can be either a binary or a list and the result will be of
the same type as <code class="inline">joiner</code>.
If <code class="inline">joiner</code> is not passed at all, it defaults to an empty binary.</p>
<p>All items returned from invoking the <code class="inline">mapper</code> must be convertible to
a binary, otherwise an error is raised.</p>
<h2 id="map_join/3-examples" class="section-heading">
  <a href="#map_join/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">Enum</span><span class="o">.</span><span class="n">map_join</span><span class="p" data-group-id="0031104289-1">(</span><span class="p" data-group-id="0031104289-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0031104289-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="0031104289-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="0031104289-3">)</span><span class="p" data-group-id="0031104289-1">)</span><span class="w">
</span><span class="s">&quot;246&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">map_join</span><span class="p" data-group-id="0031104289-4">(</span><span class="p" data-group-id="0031104289-5">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0031104289-5">]</span><span class="p">,</span><span class="w"> </span><span class="s">&quot; = &quot;</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="0031104289-6">(</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="0031104289-6">)</span><span class="p" data-group-id="0031104289-4">)</span><span class="w">
</span><span class="s">&quot;2 = 4 = 6&quot;</span></code></pre>
  </section>
</div>
<div class="detail" id="map_reduce/3">
    <div class="detail-header">
    <a href="#map_reduce/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">map_reduce(enumerable, acc, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1421" 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>map_reduce(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">any</a>(), (<a href="#t:element/0">element</a>(), <a href="typespecs.html#basic-types">any</a>() -> {<a href="typespecs.html#basic-types">any</a>(), <a href="typespecs.html#basic-types">any</a>()})) ::
  {<a href="typespecs.html#basic-types">any</a>(), <a href="typespecs.html#basic-types">any</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Invokes the given function to each item in the enumerable to reduce
it to a single element, while keeping an accumulator.</p>
<p>Returns a tuple where the first element is the mapped enumerable and
the second one is the final accumulator.</p>
<p>The function, <code class="inline">fun</code>, receives two arguments: the first one is the
element, and the second one is the accumulator. <code class="inline">fun</code> must return
a tuple with two elements in the form of <code class="inline">{result, accumulator}</code>.</p>
<p>For maps, the first tuple element must be a <code class="inline">{key, value}</code> tuple.</p>
<h2 id="map_reduce/3-examples" class="section-heading">
  <a href="#map_reduce/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">Enum</span><span class="o">.</span><span class="n">map_reduce</span><span class="p" data-group-id="2965889413-1">(</span><span class="p" data-group-id="2965889413-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2965889413-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2965889413-3">fn</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="2965889413-4">{</span><span class="n">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">acc</span><span class="p" data-group-id="2965889413-4">}</span><span class="w"> </span><span class="k" data-group-id="2965889413-3">end</span><span class="p" data-group-id="2965889413-1">)</span><span class="w">
</span><span class="p" data-group-id="2965889413-5">{</span><span class="p" data-group-id="2965889413-6">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="2965889413-6">]</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="2965889413-5">}</span></code></pre>
  </section>
</div>
<div class="detail" id="max/2">
  
    <span id="max/1"></span>
  <div class="detail-header">
    <a href="#max/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">max(enumerable, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1469" 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>max(<a href="#t:t/0">t</a>(), (() -> empty_result)) :: <a href="#t:element/0">element</a>() | empty_result | <a href="typespecs.html#built-in-types">no_return</a>()
when empty_result: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the maximal element in the enumerable according
to Erlang’s term ordering.</p>
<p>If multiple elements are considered maximal, the first one that was found
is returned.</p>
<p>Calls the provided <code class="inline">empty_fallback</code> function and returns its value if
<code class="inline">enumerable</code> is empty. The default <code class="inline">empty_fallback</code> raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a>.</p>
<h2 id="max/2-examples" class="section-heading">
  <a href="#max/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">Enum</span><span class="o">.</span><span class="n">max</span><span class="p" data-group-id="7651632088-1">(</span><span class="p" data-group-id="7651632088-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7651632088-2">]</span><span class="p" data-group-id="7651632088-1">)</span><span class="w">
</span><span class="mi">3</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">max</span><span class="p" data-group-id="7651632088-3">(</span><span class="p" data-group-id="7651632088-4">[</span><span class="p" data-group-id="7651632088-4">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7651632088-5">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="7651632088-5">end</span><span class="p" data-group-id="7651632088-3">)</span><span class="w">
</span><span class="mi">0</span></code></pre>
<p>The fact this function uses Erlang’s term ordering means that the comparison
is structural and not semantic. For example:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">max</span><span class="p" data-group-id="1637702184-1">(</span><span class="p" data-group-id="1637702184-2">[</span><span class="ld">~D[2017-03-31]</span><span class="p">,</span><span class="w"> </span><span class="ld">~D[2017-04-01]</span><span class="p" data-group-id="1637702184-2">]</span><span class="p" data-group-id="1637702184-1">)</span><span class="w">
</span><span class="ld">~D[2017-03-31]</span></code></pre>
<p>In the example above, <a href="#max/1"><code class="inline">max/1</code></a> returned March 31st instead of April 1st
because the structural comparison compares the day before the year. This
can be addressed by using <code class="inline">max_by/1</code> and by relying on structures where
the most significant digits come first. In this particular case, we can
use <a href="Date.html#to_erl/1"><code class="inline">Date.to_erl/1</code></a> to get a tuple representation with year, month and day
fields:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">max_by</span><span class="p" data-group-id="1574808754-1">(</span><span class="p" data-group-id="1574808754-2">[</span><span class="ld">~D[2017-03-31]</span><span class="p">,</span><span class="w"> </span><span class="ld">~D[2017-04-01]</span><span class="p" data-group-id="1574808754-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">Date</span><span class="o">.</span><span class="n">to_erl</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="1574808754-1">)</span><span class="w">
</span><span class="ld">~D[2017-04-01]</span></code></pre>
<p>For selecting a maximum value out of two consider using <a href="Kernel.html#max/2"><code class="inline">Kernel.max/2</code></a>.</p>
  </section>
</div>
<div class="detail" id="max_by/3">
  
    <span id="max_by/2"></span>
  <div class="detail-header">
    <a href="#max_by/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">max_by(enumerable, fun, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1497" 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>max_by(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>()), (() -> empty_result)) ::
  <a href="#t:element/0">element</a>() | empty_result | <a href="typespecs.html#built-in-types">no_return</a>()
when empty_result: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the maximal element in the enumerable as calculated
by the given function.</p>
<p>If multiple elements are considered maximal, the first one that was found
is returned.</p>
<p>Calls the provided <code class="inline">empty_fallback</code> function and returns its value if
<code class="inline">enumerable</code> is empty. The default <code class="inline">empty_fallback</code> raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a>.</p>
<h2 id="max_by/3-examples" class="section-heading">
  <a href="#max_by/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">Enum</span><span class="o">.</span><span class="n">max_by</span><span class="p" data-group-id="5006295172-1">(</span><span class="p" data-group-id="5006295172-2">[</span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aaa&quot;</span><span class="p" data-group-id="5006295172-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="5006295172-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="nc">String</span><span class="o">.</span><span class="n">length</span><span class="p" data-group-id="5006295172-4">(</span><span class="n">x</span><span class="p" data-group-id="5006295172-4">)</span><span class="w"> </span><span class="k" data-group-id="5006295172-3">end</span><span class="p" data-group-id="5006295172-1">)</span><span class="w">
</span><span class="s">&quot;aaa&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">max_by</span><span class="p" data-group-id="5006295172-5">(</span><span class="p" data-group-id="5006295172-6">[</span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aaa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;b&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;bbb&quot;</span><span class="p" data-group-id="5006295172-6">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="5006295172-5">)</span><span class="w">
</span><span class="s">&quot;aaa&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">max_by</span><span class="p" data-group-id="5006295172-7">(</span><span class="p" data-group-id="5006295172-8">[</span><span class="p" data-group-id="5006295172-8">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="5006295172-9">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="no">nil</span><span class="w"> </span><span class="k" data-group-id="5006295172-9">end</span><span class="p" data-group-id="5006295172-7">)</span><span class="w">
</span><span class="no">nil</span></code></pre>
  </section>
</div>
<div class="detail" id="member?/2">
    <div class="detail-header">
    <a href="#member?/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">member?(enumerable, element)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1537" 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>member?(<a href="#t:t/0">t</a>(), <a href="#t:element/0">element</a>()) :: <a href="typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Checks if <code class="inline">element</code> exists within the enumerable.</p>
<p>Membership is tested with the match (<a href="Kernel.html#===/2"><code class="inline">===/2</code></a>) operator.</p>
<h2 id="member?/2-examples" class="section-heading">
  <a href="#member?/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">Enum</span><span class="o">.</span><span class="n">member?</span><span class="p" data-group-id="5243698276-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="5243698276-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">Enum</span><span class="o">.</span><span class="n">member?</span><span class="p" data-group-id="5243698276-2">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mf">5.0</span><span class="p" data-group-id="5243698276-2">)</span><span class="w">
</span><span class="no">false</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">member?</span><span class="p" data-group-id="5243698276-3">(</span><span class="p" data-group-id="5243698276-4">[</span><span class="mf">1.0</span><span class="p">,</span><span class="w"> </span><span class="mf">2.0</span><span class="p">,</span><span class="w"> </span><span class="mf">3.0</span><span class="p" data-group-id="5243698276-4">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="5243698276-3">)</span><span class="w">
</span><span class="no">false</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">member?</span><span class="p" data-group-id="5243698276-5">(</span><span class="p" data-group-id="5243698276-6">[</span><span class="mf">1.0</span><span class="p">,</span><span class="w"> </span><span class="mf">2.0</span><span class="p">,</span><span class="w"> </span><span class="mf">3.0</span><span class="p" data-group-id="5243698276-6">]</span><span class="p">,</span><span class="w"> </span><span class="mf">2.000</span><span class="p" data-group-id="5243698276-5">)</span><span class="w">
</span><span class="no">true</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">member?</span><span class="p" data-group-id="5243698276-7">(</span><span class="p" data-group-id="5243698276-8">[</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">:c</span><span class="p" data-group-id="5243698276-8">]</span><span class="p">,</span><span class="w"> </span><span class="ss">:d</span><span class="p" data-group-id="5243698276-7">)</span><span class="w">
</span><span class="no">false</span></code></pre>
  </section>
</div>
<div class="detail" id="min/2">
  
    <span id="min/1"></span>
  <div class="detail-header">
    <a href="#min/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">min(enumerable, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1589" 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>min(<a href="#t:t/0">t</a>(), (() -> empty_result)) :: <a href="#t:element/0">element</a>() | empty_result | <a href="typespecs.html#built-in-types">no_return</a>()
when empty_result: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the minimal element in the enumerable according
to Erlang’s term ordering.</p>
<p>If multiple elements are considered minimal, the first one that was found
is returned.</p>
<p>Calls the provided <code class="inline">empty_fallback</code> function and returns its value if
<code class="inline">enumerable</code> is empty. The default <code class="inline">empty_fallback</code> raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a>.</p>
<h2 id="min/2-examples" class="section-heading">
  <a href="#min/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">Enum</span><span class="o">.</span><span class="n">min</span><span class="p" data-group-id="5936512902-1">(</span><span class="p" data-group-id="5936512902-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="5936512902-2">]</span><span class="p" data-group-id="5936512902-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">Enum</span><span class="o">.</span><span class="n">min</span><span class="p" data-group-id="5936512902-3">(</span><span class="p" data-group-id="5936512902-4">[</span><span class="p" data-group-id="5936512902-4">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="5936512902-5">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="5936512902-5">end</span><span class="p" data-group-id="5936512902-3">)</span><span class="w">
</span><span class="mi">0</span></code></pre>
<p>The fact this function uses Erlang’s term ordering means that the comparison
is structural and not semantic. For example:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">min</span><span class="p" data-group-id="3979033063-1">(</span><span class="p" data-group-id="3979033063-2">[</span><span class="ld">~D[2017-03-31]</span><span class="p">,</span><span class="w"> </span><span class="ld">~D[2017-04-01]</span><span class="p" data-group-id="3979033063-2">]</span><span class="p" data-group-id="3979033063-1">)</span><span class="w">
</span><span class="ld">~D[2017-04-01]</span></code></pre>
<p>In the example above, <a href="#min/1"><code class="inline">min/1</code></a> returned April 1st instead of March 31st
because the structural comparison compares the day before the year. This
can be addressed by using <code class="inline">min_by/1</code> and by relying on structures where
the most significant digits come first. In this particular case, we can
use <a href="Date.html#to_erl/1"><code class="inline">Date.to_erl/1</code></a> to get a tuple representation with year, month and day
fields:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">min_by</span><span class="p" data-group-id="5104019792-1">(</span><span class="p" data-group-id="5104019792-2">[</span><span class="ld">~D[2017-03-31]</span><span class="p">,</span><span class="w"> </span><span class="ld">~D[2017-04-01]</span><span class="p" data-group-id="5104019792-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">Date</span><span class="o">.</span><span class="n">to_erl</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="5104019792-1">)</span><span class="w">
</span><span class="ld">~D[2017-03-31]</span></code></pre>
<p>For selecting a minimal value out of two consider using <a href="Kernel.html#min/2"><code class="inline">Kernel.min/2</code></a>.</p>
  </section>
</div>
<div class="detail" id="min_by/3">
  
    <span id="min_by/2"></span>
  <div class="detail-header">
    <a href="#min_by/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">min_by(enumerable, fun, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1617" 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>min_by(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>()), (() -> empty_result)) ::
  <a href="#t:element/0">element</a>() | empty_result | <a href="typespecs.html#built-in-types">no_return</a>()
when empty_result: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the minimal element in the enumerable as calculated
by the given function.</p>
<p>If multiple elements are considered minimal, the first one that was found
is returned.</p>
<p>Calls the provided <code class="inline">empty_fallback</code> function and returns its value if
<code class="inline">enumerable</code> is empty. The default <code class="inline">empty_fallback</code> raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a>.</p>
<h2 id="min_by/3-examples" class="section-heading">
  <a href="#min_by/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">Enum</span><span class="o">.</span><span class="n">min_by</span><span class="p" data-group-id="6810153011-1">(</span><span class="p" data-group-id="6810153011-2">[</span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aaa&quot;</span><span class="p" data-group-id="6810153011-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="6810153011-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="nc">String</span><span class="o">.</span><span class="n">length</span><span class="p" data-group-id="6810153011-4">(</span><span class="n">x</span><span class="p" data-group-id="6810153011-4">)</span><span class="w"> </span><span class="k" data-group-id="6810153011-3">end</span><span class="p" data-group-id="6810153011-1">)</span><span class="w">
</span><span class="s">&quot;a&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">min_by</span><span class="p" data-group-id="6810153011-5">(</span><span class="p" data-group-id="6810153011-6">[</span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aaa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;b&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;bbb&quot;</span><span class="p" data-group-id="6810153011-6">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="6810153011-5">)</span><span class="w">
</span><span class="s">&quot;a&quot;</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">min_by</span><span class="p" data-group-id="6810153011-7">(</span><span class="p" data-group-id="6810153011-8">[</span><span class="p" data-group-id="6810153011-8">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="6810153011-9">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="no">nil</span><span class="w"> </span><span class="k" data-group-id="6810153011-9">end</span><span class="p" data-group-id="6810153011-7">)</span><span class="w">
</span><span class="no">nil</span></code></pre>
  </section>
</div>
<div class="detail" id="min_max/2">
  
    <span id="min_max/1"></span>
  <div class="detail-header">
    <a href="#min_max/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">min_max(enumerable, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1658" 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>min_max(<a href="#t:t/0">t</a>(), (() -> empty_result)) ::
  {<a href="#t:element/0">element</a>(), <a href="#t:element/0">element</a>()} | empty_result | <a href="typespecs.html#built-in-types">no_return</a>()
when empty_result: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a tuple with the minimal and the maximal elements in the
enumerable according to Erlang’s term ordering.</p>
<p>If multiple elements are considered maximal or minimal, the first one
that was found is returned.</p>
<p>Calls the provided <code class="inline">empty_fallback</code> function and returns its value if
<code class="inline">enumerable</code> is empty. The default <code class="inline">empty_fallback</code> raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a>.</p>
<h2 id="min_max/2-examples" class="section-heading">
  <a href="#min_max/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">Enum</span><span class="o">.</span><span class="n">min_max</span><span class="p" data-group-id="7833370925-1">(</span><span class="p" data-group-id="7833370925-2">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7833370925-2">]</span><span class="p" data-group-id="7833370925-1">)</span><span class="w">
</span><span class="p" data-group-id="7833370925-3">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7833370925-3">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">min_max</span><span class="p" data-group-id="7833370925-4">(</span><span class="p" data-group-id="7833370925-5">[</span><span class="p" data-group-id="7833370925-5">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7833370925-6">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="7833370925-7">{</span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p" data-group-id="7833370925-7">}</span><span class="w"> </span><span class="k" data-group-id="7833370925-6">end</span><span class="p" data-group-id="7833370925-4">)</span><span class="w">
</span><span class="p" data-group-id="7833370925-8">{</span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p" data-group-id="7833370925-8">}</span></code></pre>
  </section>
</div>
<div class="detail" id="min_max_by/3">
  
    <span id="min_max_by/2"></span>
  <div class="detail-header">
    <a href="#min_max_by/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">min_max_by(enumerable, fun, empty_fallback \\ fn -&gt; raise(Enum.EmptyError) end)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1698" 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>min_max_by(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>()), (() -> empty_result)) ::
  {<a href="#t:element/0">element</a>(), <a href="#t:element/0">element</a>()} | empty_result | <a href="typespecs.html#built-in-types">no_return</a>()
when empty_result: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a tuple with the minimal and the maximal elements in the
enumerable as calculated by the given function.</p>
<p>If multiple elements are considered maximal or minimal, the first one
that was found is returned.</p>
<p>Calls the provided <code class="inline">empty_fallback</code> function and returns its value if
<code class="inline">enumerable</code> is empty. The default <code class="inline">empty_fallback</code> raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a>.</p>
<h2 id="min_max_by/3-examples" class="section-heading">
  <a href="#min_max_by/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">Enum</span><span class="o">.</span><span class="n">min_max_by</span><span class="p" data-group-id="3753844474-1">(</span><span class="p" data-group-id="3753844474-2">[</span><span class="s">&quot;aaa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;bb&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;c&quot;</span><span class="p" data-group-id="3753844474-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3753844474-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="nc">String</span><span class="o">.</span><span class="n">length</span><span class="p" data-group-id="3753844474-4">(</span><span class="n">x</span><span class="p" data-group-id="3753844474-4">)</span><span class="w"> </span><span class="k" data-group-id="3753844474-3">end</span><span class="p" data-group-id="3753844474-1">)</span><span class="w">
</span><span class="p" data-group-id="3753844474-5">{</span><span class="s">&quot;c&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aaa&quot;</span><span class="p" data-group-id="3753844474-5">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">min_max_by</span><span class="p" data-group-id="3753844474-6">(</span><span class="p" data-group-id="3753844474-7">[</span><span class="s">&quot;aaa&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;bb&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;c&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;ccc&quot;</span><span class="p" data-group-id="3753844474-7">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="3753844474-6">)</span><span class="w">
</span><span class="p" data-group-id="3753844474-8">{</span><span class="s">&quot;a&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;aaa&quot;</span><span class="p" data-group-id="3753844474-8">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">min_max_by</span><span class="p" data-group-id="3753844474-9">(</span><span class="p" data-group-id="3753844474-10">[</span><span class="p" data-group-id="3753844474-10">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nc">String</span><span class="o">.</span><span class="n">length</span><span class="o">/</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3753844474-11">fn</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="3753844474-12">{</span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p" data-group-id="3753844474-12">}</span><span class="w"> </span><span class="k" data-group-id="3753844474-11">end</span><span class="p" data-group-id="3753844474-9">)</span><span class="w">
</span><span class="p" data-group-id="3753844474-13">{</span><span class="no">nil</span><span class="p">,</span><span class="w"> </span><span class="no">nil</span><span class="p" data-group-id="3753844474-13">}</span></code></pre>
  </section>
</div>
<div class="detail" id="random/1">
    <div class="detail-header">
    <a href="#random/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">random(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1816" 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>random(<a href="#t:t/0">t</a>()) :: <a href="#t:element/0">element</a>() | <a href="typespecs.html#built-in-types">no_return</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a random element of an enumerable.</p>
<p>Raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a> if <code class="inline">enumerable</code> is empty.</p>
<p>This function uses Erlang’s <a href="http://www.erlang.org/doc/man/rand.html"><code class="inline">:rand</code> module</a> to calculate
the random value. Check its documentation for setting a
different random algorithm or a different seed.</p>
<p>The implementation is based on the
<a href="https://en.wikipedia.org/wiki/Reservoir_sampling#Relation_to_Fisher-Yates_shuffle">reservoir sampling</a>
algorithm.
It assumes that the sample being returned can fit into memory;
the input <code class="inline">enumerable</code> doesn’t have to, as it is traversed just once.</p>
<p>If a range is passed into the function, this function will pick a
random value between the range limits, without traversing the whole
range (thus executing in constant time and constant memory).</p>
<h2 id="random/1-examples" class="section-heading">
  <a href="#random/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="c1"># Although not necessary, let&#39;s seed the random algorithm</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="ss">:rand</span><span class="o">.</span><span class="n">seed</span><span class="p" data-group-id="8919715399-1">(</span><span class="ss">:exsplus</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8919715399-2">{</span><span class="mi">101</span><span class="p">,</span><span class="w"> </span><span class="mi">102</span><span class="p">,</span><span class="w"> </span><span class="mi">103</span><span class="p" data-group-id="8919715399-2">}</span><span class="p" data-group-id="8919715399-1">)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">random</span><span class="p" data-group-id="8919715399-3">(</span><span class="p" data-group-id="8919715399-4">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8919715399-4">]</span><span class="p" data-group-id="8919715399-3">)</span><span class="w">
</span><span class="mi">2</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">random</span><span class="p" data-group-id="8919715399-5">(</span><span class="p" data-group-id="8919715399-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8919715399-6">]</span><span class="p" data-group-id="8919715399-5">)</span><span class="w">
</span><span class="mi">1</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">random</span><span class="p" data-group-id="8919715399-7">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">1_000</span><span class="p" data-group-id="8919715399-7">)</span><span class="w">
</span><span class="mi">776</span></code></pre>
  </section>
</div>
<div class="detail" id="reduce/2">
    <div class="detail-header">
    <a href="#reduce/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">reduce(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1872" 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>reduce(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>(), <a href="typespecs.html#basic-types">any</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Invokes <code class="inline">fun</code> for each element in the <code class="inline">enumerable</code> with the
accumulator.</p>
<p>Raises <a href="Enum.EmptyError.html"><code class="inline">Enum.EmptyError</code></a> if <code class="inline">enumerable</code> is empty.</p>
<p>The first element of the enumerable is used as the initial value
of the accumulator. Then the function is invoked with the next
element and the accumulator. The result returned by the function
is used as the accumulator for the next iteration, recursively.
When the enumerable is done, the last accumulator is returned.</p>
<p>Since the first element of the enumerable is used as the initial
value of the accumulator, <code class="inline">fun</code> will only be executed <code class="inline">n - 1</code> times
where <code class="inline">n</code> is the length of the enumerable. This function won’t call
the specified function for enumerables that are one-element long.</p>
<p>If you wish to use another value for the accumulator, use
<a href="Enum.html#reduce/3"><code class="inline">Enum.reduce/3</code></a>.</p>
<h2 id="reduce/2-examples" class="section-heading">
  <a href="#reduce/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">Enum</span><span class="o">.</span><span class="n">reduce</span><span class="p" data-group-id="3654131458-1">(</span><span class="p" data-group-id="3654131458-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="3654131458-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="3654131458-3">fn</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="k" data-group-id="3654131458-3">end</span><span class="p" data-group-id="3654131458-1">)</span><span class="w">
</span><span class="mi">24</span></code></pre>
  </section>
</div>
<div class="detail" id="reduce/3">
    <div class="detail-header">
    <a href="#reduce/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">reduce(enumerable, acc, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1944" 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>reduce(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">any</a>(), (<a href="#t:element/0">element</a>(), <a href="typespecs.html#basic-types">any</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Invokes <code class="inline">fun</code> for each element in the <code class="inline">enumerable</code> with the accumulator.</p>
<p>The initial value of the accumulator is <code class="inline">acc</code>. The function is invoked for
each element in the enumerable with the accumulator. The result returned
by the function is used as the accumulator for the next iteration.
The function returns the last accumulator.</p>
<h2 id="reduce/3-examples" class="section-heading">
  <a href="#reduce/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">Enum</span><span class="o">.</span><span class="n">reduce</span><span class="p" data-group-id="2545207966-1">(</span><span class="p" data-group-id="2545207966-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2545207966-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2545207966-3">fn</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="k" data-group-id="2545207966-3">end</span><span class="p" data-group-id="2545207966-1">)</span><span class="w">
</span><span class="mi">6</span></code></pre>
<h2 id="reduce/3-reduce-as-a-building-block" class="section-heading">
  <a href="#reduce/3-reduce-as-a-building-block" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Reduce as a building block
</h2>

<p>Reduce (sometimes called <code class="inline">fold</code>) is a basic building block in functional
programming. Almost all of the functions in the <a href="Enum.html#content"><code class="inline">Enum</code></a> module can be
implemented on top of reduce. Those functions often rely on other operations,
such as <a href="Enum.html#reverse/1"><code class="inline">Enum.reverse/1</code></a>, which are optimized by the runtime.</p>
<p>For example, we could implement <a href="#map/2"><code class="inline">map/2</code></a> in terms of <a href="#reduce/3"><code class="inline">reduce/3</code></a> as follows:</p>
<pre><code class="nohighlight makeup elixir"><span class="kd">def</span><span class="w"> </span><span class="nf">my_map</span><span class="p" data-group-id="7699755378-1">(</span><span class="n">enumerable</span><span class="p">,</span><span class="w"> </span><span class="n">fun</span><span class="p" data-group-id="7699755378-1">)</span><span class="w"> </span><span class="k" data-group-id="7699755378-2">do</span><span class="w">
  </span><span class="n">enumerable</span><span class="w">
  </span><span class="o">|&gt;</span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">reduce</span><span class="p" data-group-id="7699755378-3">(</span><span class="p" data-group-id="7699755378-4">[</span><span class="p" data-group-id="7699755378-4">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="7699755378-5">fn</span><span class="p" data-group-id="7699755378-6">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="p" data-group-id="7699755378-6">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p" data-group-id="7699755378-7">[</span><span class="n">fun</span><span class="o">.</span><span class="p" data-group-id="7699755378-8">(</span><span class="n">x</span><span class="p" data-group-id="7699755378-8">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">acc</span><span class="p" data-group-id="7699755378-7">]</span><span class="w"> </span><span class="k" data-group-id="7699755378-5">end</span><span class="p" data-group-id="7699755378-3">)</span><span class="w">
  </span><span class="o">|&gt;</span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">reverse</span><span class="w">
</span><span class="k" data-group-id="7699755378-2">end</span></code></pre>
<p>In the example above, <a href="Enum.html#reduce/3"><code class="inline">Enum.reduce/3</code></a> accumulates the result of each call
to <code class="inline">fun</code> into a list in reverse order, which is correctly ordered at the
end by calling <a href="Enum.html#reverse/1"><code class="inline">Enum.reverse/1</code></a>.</p>
<p>Implementing functions like <a href="#map/2"><code class="inline">map/2</code></a>, <a href="#filter/2"><code class="inline">filter/2</code></a> and others are a good
exercise for understanding the power behind <a href="Enum.html#reduce/3"><code class="inline">Enum.reduce/3</code></a>. When an
operation cannot be expressed by any of the functions in the <a href="Enum.html#content"><code class="inline">Enum</code></a>
module, developers will most likely resort to <a href="#reduce/3"><code class="inline">reduce/3</code></a>.</p>
  </section>
</div>
<div class="detail" id="reduce_while/3">
    <div class="detail-header">
    <a href="#reduce_while/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">reduce_while(enumerable, acc, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1967" 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>reduce_while(
  <a href="#t:t/0">t</a>(),
  <a href="typespecs.html#basic-types">any</a>(),
  (<a href="#t:element/0">element</a>(), <a href="typespecs.html#basic-types">any</a>() -> {:cont, <a href="typespecs.html#basic-types">any</a>()} | {:halt, <a href="typespecs.html#basic-types">any</a>()})
) :: <a href="typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Reduces the enumerable until <code class="inline">fun</code> returns <code class="inline">{:halt, term}</code>.</p>
<p>The return value for <code class="inline">fun</code> is expected to be</p>
<ul>
<li><code class="inline">{:cont, acc}</code> to continue the reduction with <code class="inline">acc</code> as the new
accumulator or
</li>
<li><code class="inline">{:halt, acc}</code> to halt the reduction and return <code class="inline">acc</code> as the return
value of this function
</li>
</ul>
<h2 id="reduce_while/3-examples" class="section-heading">
  <a href="#reduce_while/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">Enum</span><span class="o">.</span><span class="n">reduce_while</span><span class="p" data-group-id="2481795309-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">100</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2481795309-2">fn</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">acc</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="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">do</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2481795309-3">{</span><span class="ss">:cont</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">x</span><span class="p" data-group-id="2481795309-3">}</span><span class="p">,</span><span class="w"> </span><span class="ss">else</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2481795309-4">{</span><span class="ss">:halt</span><span class="p">,</span><span class="w"> </span><span class="n">acc</span><span class="p" data-group-id="2481795309-4">}</span><span class="w">
</span><span class="gp unselectable">...&gt; </span><span class="k" data-group-id="2481795309-2">end</span><span class="p" data-group-id="2481795309-1">)</span><span class="w">
</span><span class="mi">3</span></code></pre>
  </section>
</div>
<div class="detail" id="reject/2">
    <div class="detail-header">
    <a href="#reject/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">reject(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1988" 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>reject(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a list of elements in <code class="inline">enumerable</code> excluding those for which the function <code class="inline">fun</code> returns
a truthy value.</p>
<p>See also <a href="#filter/2"><code class="inline">filter/2</code></a>.</p>
<h2 id="reject/2-examples" class="section-heading">
  <a href="#reject/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">Enum</span><span class="o">.</span><span class="n">reject</span><span class="p" data-group-id="2353291311-1">(</span><span class="p" data-group-id="2353291311-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2353291311-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="2353291311-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="n">rem</span><span class="p" data-group-id="2353291311-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="2353291311-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="2353291311-3">end</span><span class="p" data-group-id="2353291311-1">)</span><span class="w">
</span><span class="p" data-group-id="2353291311-5">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2353291311-5">]</span></code></pre>
  </section>
</div>
<div class="detail" id="reverse/1">
    <div class="detail-header">
    <a href="#reverse/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">reverse(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2008" 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>reverse(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a list of elements in <code class="inline">enumerable</code> in reverse order.</p>
<h2 id="reverse/1-examples" class="section-heading">
  <a href="#reverse/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">Enum</span><span class="o">.</span><span class="n">reverse</span><span class="p" data-group-id="0038830577-1">(</span><span class="p" data-group-id="0038830577-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0038830577-2">]</span><span class="p" data-group-id="0038830577-1">)</span><span class="w">
</span><span class="p" data-group-id="0038830577-3">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0038830577-3">]</span></code></pre>
  </section>
</div>
<div class="detail" id="reverse/2">
    <div class="detail-header">
    <a href="#reverse/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">reverse(enumerable, tail)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2028" 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>reverse(<a href="#t:t/0">t</a>(), <a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Reverses the elements in <code class="inline">enumerable</code>, appends the <code class="inline">tail</code>, and returns
it as a list.</p>
<p>This is an optimization for
<code class="inline">enumerable |&gt; Enum.reverse() |&gt; Enum.concat(tail)</code>.</p>
<h2 id="reverse/2-examples" class="section-heading">
  <a href="#reverse/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">Enum</span><span class="o">.</span><span class="n">reverse</span><span class="p" data-group-id="5361496864-1">(</span><span class="p" data-group-id="5361496864-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="5361496864-2">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5361496864-3">[</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5361496864-3">]</span><span class="p" data-group-id="5361496864-1">)</span><span class="w">
</span><span class="p" data-group-id="5361496864-4">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="5361496864-4">]</span></code></pre>
  </section>
</div>
<div class="detail" id="reverse_slice/3">
    <div class="detail-header">
    <a href="#reverse_slice/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">reverse_slice(enumerable, start, count)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2048" 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>reverse_slice(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">non_neg_integer</a>(), <a href="typespecs.html#basic-types">non_neg_integer</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Reverses the enumerable in the range from initial position <code class="inline">start</code>
through <code class="inline">count</code> elements.</p>
<p>If <code class="inline">count</code> is greater than the size of the rest of the enumerable,
then this function will reverse the rest of the enumerable.</p>
<h2 id="reverse_slice/3-examples" class="section-heading">
  <a href="#reverse_slice/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">Enum</span><span class="o">.</span><span class="n">reverse_slice</span><span class="p" data-group-id="7481482028-1">(</span><span class="p" data-group-id="7481482028-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p" data-group-id="7481482028-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="7481482028-1">)</span><span class="w">
</span><span class="p" data-group-id="7481482028-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7481482028-3">]</span></code></pre>
  </section>
</div>
<div class="detail" id="scan/2">
    <div class="detail-header">
    <a href="#scan/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">scan(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2074" 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>scan(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>(), <a href="typespecs.html#basic-types">any</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Applies the given function to each element in the enumerable,
storing the result in a list and passing it as the accumulator
for the next computation. Uses the first element in the enumerable
as the starting value.</p>
<h2 id="scan/2-examples" class="section-heading">
  <a href="#scan/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">Enum</span><span class="o">.</span><span class="n">scan</span><span class="p" data-group-id="3634886625-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="3634886625-2">(</span><span class="ni">&amp;1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="ni">&amp;2</span><span class="p" data-group-id="3634886625-2">)</span><span class="p" data-group-id="3634886625-1">)</span><span class="w">
</span><span class="p" data-group-id="3634886625-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="3634886625-3">]</span></code></pre>
  </section>
</div>
<div class="detail" id="scan/3">
    <div class="detail-header">
    <a href="#scan/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">scan(enumerable, acc, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2091" 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>scan(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">any</a>(), (<a href="#t:element/0">element</a>(), <a href="typespecs.html#basic-types">any</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Applies the given function to each element in the enumerable,
storing the result in a list and passing it as the accumulator
for the next computation. Uses the given <code class="inline">acc</code> as the starting value.</p>
<h2 id="scan/3-examples" class="section-heading">
  <a href="#scan/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">Enum</span><span class="o">.</span><span class="n">scan</span><span class="p" data-group-id="9405947527-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="9405947527-2">(</span><span class="ni">&amp;1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="ni">&amp;2</span><span class="p" data-group-id="9405947527-2">)</span><span class="p" data-group-id="9405947527-1">)</span><span class="w">
</span><span class="p" data-group-id="9405947527-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="9405947527-3">]</span></code></pre>
  </section>
</div>
<div class="detail" id="shuffle/1">
    <div class="detail-header">
    <a href="#shuffle/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">shuffle(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2114" 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>shuffle(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a list with the elements of <code class="inline">enumerable</code> shuffled.</p>
<p>This function uses Erlang’s <a href="http://www.erlang.org/doc/man/rand.html"><code class="inline">:rand</code> module</a> to calculate
the random value. Check its documentation for setting a
different random algorithm or a different seed.</p>
<h2 id="shuffle/1-examples" class="section-heading">
  <a href="#shuffle/1-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="c1"># Although not necessary, let&#39;s seed the random algorithm</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="ss">:rand</span><span class="o">.</span><span class="n">seed</span><span class="p" data-group-id="3873959081-1">(</span><span class="ss">:exsplus</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3873959081-2">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3873959081-2">}</span><span class="p" data-group-id="3873959081-1">)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">shuffle</span><span class="p" data-group-id="3873959081-3">(</span><span class="p" data-group-id="3873959081-4">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3873959081-4">]</span><span class="p" data-group-id="3873959081-3">)</span><span class="w">
</span><span class="p" data-group-id="3873959081-5">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3873959081-5">]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">shuffle</span><span class="p" data-group-id="3873959081-6">(</span><span class="p" data-group-id="3873959081-7">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3873959081-7">]</span><span class="p" data-group-id="3873959081-6">)</span><span class="w">
</span><span class="p" data-group-id="3873959081-8">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="3873959081-8">]</span></code></pre>
  </section>
</div>
<div class="detail" id="slice/2">
    <div class="detail-header">
    <a href="#slice/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">slice(enumerable, arg)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2163" 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.6.0)</span>
    
      <div class="specs">
          <pre>slice(<a href="#t:t/0">t</a>(), <a href="Range.html#t:t/0">Range.t</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a subset list of the given enumerable, from <code class="inline">range.first</code> to <code class="inline">range.last</code> positions.</p>
<p>Given <code class="inline">enumerable</code>, it drops elements until element position <code class="inline">range.first</code>,
then takes elements until element position <code class="inline">range.last</code> (inclusive).</p>
<p>Positions are normalized, meaning that negative positions will be counted from the end
(e.g. <code class="inline">-1</code> means the last element of the enumerable).
If <code class="inline">range.last</code> is out of bounds, then it is assigned as the position of the last element.</p>
<p>If the normalized <code class="inline">range.first</code> position is out of bounds of the given enumerable,
or this one is greater than the normalized <code class="inline">range.last</code> position, then <code class="inline">[]</code> is returned.</p>
<h2 id="slice/2-examples" class="section-heading">
  <a href="#slice/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">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="2644845916-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">100</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p" data-group-id="2644845916-1">)</span><span class="w">
</span><span class="p" data-group-id="2644845916-2">[</span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="p" data-group-id="2644845916-2">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="2644845916-3">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="o">.</span><span class="o">.</span><span class="mi">20</span><span class="p" data-group-id="2644845916-3">)</span><span class="w">
</span><span class="p" data-group-id="2644845916-4">[</span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="2644845916-4">]</span><span class="w">

</span><span class="c1"># last five elements (negative positions)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="2644845916-5">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">5</span><span class="o">.</span><span class="o">.</span><span class="o">-</span><span class="mi">1</span><span class="p" data-group-id="2644845916-5">)</span><span class="w">
</span><span class="p" data-group-id="2644845916-6">[</span><span class="mi">26</span><span class="p">,</span><span class="w"> </span><span class="mi">27</span><span class="p">,</span><span class="w"> </span><span class="mi">28</span><span class="p">,</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p" data-group-id="2644845916-6">]</span><span class="w">

</span><span class="c1"># last five elements (mixed positive and negative positions)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="2644845916-7">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">25</span><span class="o">.</span><span class="o">.</span><span class="o">-</span><span class="mi">1</span><span class="p" data-group-id="2644845916-7">)</span><span class="w">
</span><span class="p" data-group-id="2644845916-8">[</span><span class="mi">26</span><span class="p">,</span><span class="w"> </span><span class="mi">27</span><span class="p">,</span><span class="w"> </span><span class="mi">28</span><span class="p">,</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p" data-group-id="2644845916-8">]</span><span class="w">

</span><span class="c1"># out of bounds</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="2644845916-9">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="o">.</span><span class="o">.</span><span class="mi">20</span><span class="p" data-group-id="2644845916-9">)</span><span class="w">
</span><span class="p" data-group-id="2644845916-10">[</span><span class="p" data-group-id="2644845916-10">]</span><span class="w">

</span><span class="c1"># range.first is greater than range.last</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="2644845916-11">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="o">.</span><span class="o">.</span><span class="mi">5</span><span class="p" data-group-id="2644845916-11">)</span><span class="w">
</span><span class="p" data-group-id="2644845916-12">[</span><span class="p" data-group-id="2644845916-12">]</span></code></pre>
  </section>
</div>
<div class="detail" id="slice/3">
    <div class="detail-header">
    <a href="#slice/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">slice(enumerable, start, amount)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2211" 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>slice(<a href="#t:t/0">t</a>(), <a href="#t:index/0">index</a>(), <a href="typespecs.html#basic-types">non_neg_integer</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a subset list of the given enumerable, from <code class="inline">start</code> position with <code class="inline">amount</code> of elements if available.</p>
<p>Given <code class="inline">enumerable</code>, it drops elements until element position <code class="inline">start</code>,
then takes <code class="inline">amount</code> of elements until the end of the enumerable.</p>
<p>If <code class="inline">start</code> is out of bounds, it returns <code class="inline">[]</code>.</p>
<p>If <code class="inline">amount</code> is greater than <code class="inline">enumerable</code> length, it returns as many elements as possible.
If <code class="inline">amount</code> is zero, then <code class="inline">[]</code> is returned.</p>
<h2 id="slice/3-examples" class="section-heading">
  <a href="#slice/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">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="8925501830-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">100</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="8925501830-1">)</span><span class="w">
</span><span class="p" data-group-id="8925501830-2">[</span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">14</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p" data-group-id="8925501830-2">]</span><span class="w">

</span><span class="c1"># amount to take is greater than the number of elements</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="8925501830-3">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span><span class="p" data-group-id="8925501830-3">)</span><span class="w">
</span><span class="p" data-group-id="8925501830-4">[</span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="8925501830-4">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="8925501830-5">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="8925501830-5">)</span><span class="w">
</span><span class="p" data-group-id="8925501830-6">[</span><span class="p" data-group-id="8925501830-6">]</span><span class="w">

</span><span class="c1"># out of bound start position</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="8925501830-7">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="8925501830-7">)</span><span class="w">
</span><span class="p" data-group-id="8925501830-8">[</span><span class="p" data-group-id="8925501830-8">]</span><span class="w">

</span><span class="c1"># out of bound start position (negative)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">slice</span><span class="p" data-group-id="8925501830-9">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">11</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="8925501830-9">)</span><span class="w">
</span><span class="p" data-group-id="8925501830-10">[</span><span class="p" data-group-id="8925501830-10">]</span></code></pre>
  </section>
</div>
<div class="detail" id="sort/1">
    <div class="detail-header">
    <a href="#sort/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">sort(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2232" 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>sort(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Sorts the enumerable according to Erlang’s term ordering.</p>
<p>Uses the merge sort algorithm.</p>
<h2 id="sort/1-examples" class="section-heading">
  <a href="#sort/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">Enum</span><span class="o">.</span><span class="n">sort</span><span class="p" data-group-id="4568391874-1">(</span><span class="p" data-group-id="4568391874-2">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4568391874-2">]</span><span class="p" data-group-id="4568391874-1">)</span><span class="w">
</span><span class="p" data-group-id="4568391874-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4568391874-3">]</span></code></pre>
  </section>
</div>
<div class="detail" id="sort/2">
    <div class="detail-header">
    <a href="#sort/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">sort(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2266" 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>sort(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>(), <a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">boolean</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Sorts the enumerable by the given function.</p>
<p>This function uses the merge sort algorithm. The given function should compare
two arguments, and return <code class="inline">true</code> if the first argument precedes the second one.</p>
<h2 id="sort/2-examples" class="section-heading">
  <a href="#sort/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">Enum</span><span class="o">.</span><span class="n">sort</span><span class="p" data-group-id="8171501931-1">(</span><span class="p" data-group-id="8171501931-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8171501931-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="8171501931-3">(</span><span class="ni">&amp;1</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="ni">&amp;2</span><span class="p" data-group-id="8171501931-3">)</span><span class="p" data-group-id="8171501931-1">)</span><span class="w">
</span><span class="p" data-group-id="8171501931-4">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="8171501931-4">]</span></code></pre>
<p>The sorting algorithm will be stable as long as the given function
returns <code class="inline">true</code> for values considered equal:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sort</span><span class="p" data-group-id="1211538100-1">(</span><span class="p" data-group-id="1211538100-2">[</span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="1211538100-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="1211538100-3">(</span><span class="n">byte_size</span><span class="p" data-group-id="1211538100-4">(</span><span class="ni">&amp;1</span><span class="p" data-group-id="1211538100-4">)</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="n">byte_size</span><span class="p" data-group-id="1211538100-5">(</span><span class="ni">&amp;2</span><span class="p" data-group-id="1211538100-5">)</span><span class="p" data-group-id="1211538100-3">)</span><span class="p" data-group-id="1211538100-1">)</span><span class="w">
</span><span class="p" data-group-id="1211538100-6">[</span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="1211538100-6">]</span></code></pre>
<p>If the function does not return <code class="inline">true</code> for equal values, the sorting
is not stable and the order of equal terms may be shuffled.
For example:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sort</span><span class="p" data-group-id="8233995814-1">(</span><span class="p" data-group-id="8233995814-2">[</span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="8233995814-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="8233995814-3">(</span><span class="n">byte_size</span><span class="p" data-group-id="8233995814-4">(</span><span class="ni">&amp;1</span><span class="p" data-group-id="8233995814-4">)</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">byte_size</span><span class="p" data-group-id="8233995814-5">(</span><span class="ni">&amp;2</span><span class="p" data-group-id="8233995814-5">)</span><span class="p" data-group-id="8233995814-3">)</span><span class="p" data-group-id="8233995814-1">)</span><span class="w">
</span><span class="p" data-group-id="8233995814-6">[</span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="8233995814-6">]</span></code></pre>
  </section>
</div>
<div class="detail" id="sort_by/3">
  
    <span id="sort_by/2"></span>
  <div class="detail-header">
    <a href="#sort_by/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">sort_by(enumerable, mapper, sorter \\ &amp;&lt;=/2)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2308" 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>sort_by(
  <a href="#t:t/0">t</a>(),
  (<a href="#t:element/0">element</a>() -> mapped_element),
  (mapped_element, mapped_element -> <a href="typespecs.html#built-in-types">boolean</a>())
) :: <a href="typespecs.html#built-in-types">list</a>()
when mapped_element: <a href="#t:element/0">element</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Sorts the mapped results of the enumerable according to the provided <code class="inline">sorter</code>
function.</p>
<p>This function maps each element of the enumerable using the provided <code class="inline">mapper</code>
function. The enumerable is then sorted by the mapped elements
using the <code class="inline">sorter</code> function, which defaults to <a href="Kernel.html#%253C=/2"><code class="inline">Kernel.&lt;=/2</code></a>.</p>
<p><a href="#sort_by/3"><code class="inline">sort_by/3</code></a> differs from <a href="#sort/2"><code class="inline">sort/2</code></a> in that it only calculates the
comparison value for each element in the enumerable once instead of
once for each element in each comparison.
If the same function is being called on both elements, it’s also more
compact to use <a href="#sort_by/3"><code class="inline">sort_by/3</code></a>.</p>
<h2 id="sort_by/3-examples" class="section-heading">
  <a href="#sort_by/3-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<p>Using the default <code class="inline">sorter</code> of <a href="Kernel.html#%253C=/2"><code class="inline">&lt;=/2</code></a>:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sort_by</span><span class="p" data-group-id="3816454101-1">(</span><span class="p" data-group-id="3816454101-2">[</span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="3816454101-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">byte_size</span><span class="o">/</span><span class="mi">1</span><span class="p" data-group-id="3816454101-1">)</span><span class="w">
</span><span class="p" data-group-id="3816454101-3">[</span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="3816454101-3">]</span></code></pre>
<p>Using a custom <code class="inline">sorter</code> to override the order:</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sort_by</span><span class="p" data-group-id="5962599511-1">(</span><span class="p" data-group-id="5962599511-2">[</span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="5962599511-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">byte_size</span><span class="o">/</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="o">&gt;=</span><span class="o">/</span><span class="mi">2</span><span class="p" data-group-id="5962599511-1">)</span><span class="w">
</span><span class="p" data-group-id="5962599511-3">[</span><span class="s">&quot;monster&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;of&quot;</span><span class="p" data-group-id="5962599511-3">]</span></code></pre>
<p>Sorting by multiple properties - first by size, then by first letter
(this takes advantage of the fact that tuples are compared element-by-element):</p>
<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">sort_by</span><span class="p" data-group-id="6684424759-1">(</span><span class="p" data-group-id="6684424759-2">[</span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="6684424759-2">]</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="p" data-group-id="6684424759-3">{</span><span class="n">byte_size</span><span class="p" data-group-id="6684424759-4">(</span><span class="ni">&amp;1</span><span class="p" data-group-id="6684424759-4">)</span><span class="p">,</span><span class="w"> </span><span class="nc">String</span><span class="o">.</span><span class="n">first</span><span class="p" data-group-id="6684424759-5">(</span><span class="ni">&amp;1</span><span class="p" data-group-id="6684424759-5">)</span><span class="p" data-group-id="6684424759-3">}</span><span class="p" data-group-id="6684424759-1">)</span><span class="w">
</span><span class="p" data-group-id="6684424759-6">[</span><span class="s">&quot;of&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;kind&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;some&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;monster&quot;</span><span class="p" data-group-id="6684424759-6">]</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(enumerable, count)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2362" 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="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">integer</a>()) :: {<a href="typespecs.html#built-in-types">list</a>(), <a href="typespecs.html#built-in-types">list</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Splits the <code class="inline">enumerable</code> into two enumerables, leaving <code class="inline">count</code>
elements in the first one.</p>
<p>If <code class="inline">count</code> is a negative number, it starts counting from the
back to the beginning of the enumerable.</p>
<p>Be aware that a negative <code class="inline">count</code> implies the <code class="inline">enumerable</code>
will be enumerated twice: once to calculate the position, and
a second time to do the actual splitting.</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">Enum</span><span class="o">.</span><span class="n">split</span><span class="p" data-group-id="7741258920-1">(</span><span class="p" data-group-id="7741258920-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7741258920-1">)</span><span class="w">
</span><span class="p" data-group-id="7741258920-3">{</span><span class="p" data-group-id="7741258920-4">[</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="7741258920-4">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7741258920-5">[</span><span class="mi">3</span><span class="p" data-group-id="7741258920-5">]</span><span class="p" data-group-id="7741258920-3">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">split</span><span class="p" data-group-id="7741258920-6">(</span><span class="p" data-group-id="7741258920-7">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-7">]</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="7741258920-6">)</span><span class="w">
</span><span class="p" data-group-id="7741258920-8">{</span><span class="p" data-group-id="7741258920-9">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-9">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7741258920-10">[</span><span class="p" data-group-id="7741258920-10">]</span><span class="p" data-group-id="7741258920-8">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">split</span><span class="p" data-group-id="7741258920-11">(</span><span class="p" data-group-id="7741258920-12">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-12">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="7741258920-11">)</span><span class="w">
</span><span class="p" data-group-id="7741258920-13">{</span><span class="p" data-group-id="7741258920-14">[</span><span class="p" data-group-id="7741258920-14">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7741258920-15">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-15">]</span><span class="p" data-group-id="7741258920-13">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">split</span><span class="p" data-group-id="7741258920-16">(</span><span class="p" data-group-id="7741258920-17">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-17">]</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p" data-group-id="7741258920-16">)</span><span class="w">
</span><span class="p" data-group-id="7741258920-18">{</span><span class="p" data-group-id="7741258920-19">[</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="7741258920-19">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7741258920-20">[</span><span class="mi">3</span><span class="p" data-group-id="7741258920-20">]</span><span class="p" data-group-id="7741258920-18">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">split</span><span class="p" data-group-id="7741258920-21">(</span><span class="p" data-group-id="7741258920-22">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-22">]</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">5</span><span class="p" data-group-id="7741258920-21">)</span><span class="w">
</span><span class="p" data-group-id="7741258920-23">{</span><span class="p" data-group-id="7741258920-24">[</span><span class="p" data-group-id="7741258920-24">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7741258920-25">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="7741258920-25">]</span><span class="p" data-group-id="7741258920-23">}</span></code></pre>
  </section>
</div>
<div class="detail" id="split_while/2">
    <div class="detail-header">
    <a href="#split_while/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_while(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2381" 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_while(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: {<a href="typespecs.html#built-in-types">list</a>(), <a href="typespecs.html#built-in-types">list</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Splits enumerable in two at the position of the element for which
<code class="inline">fun</code> returns <code class="inline">false</code> for the first time.</p>
<h2 id="split_while/2-examples" class="section-heading">
  <a href="#split_while/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">Enum</span><span class="o">.</span><span class="n">split_while</span><span class="p" data-group-id="6175238438-1">(</span><span class="p" data-group-id="6175238438-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="6175238438-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="6175238438-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="n">x</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k" data-group-id="6175238438-3">end</span><span class="p" data-group-id="6175238438-1">)</span><span class="w">
</span><span class="p" data-group-id="6175238438-4">{</span><span class="p" data-group-id="6175238438-5">[</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="6175238438-5">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6175238438-6">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="6175238438-6">]</span><span class="p" data-group-id="6175238438-4">}</span></code></pre>
  </section>
</div>
<div class="detail" id="split_with/2">
    <div class="detail-header">
    <a href="#split_with/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_with(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L1755" 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.4.0)</span>
    
      <div class="specs">
          <pre>split_with(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#basic-types">any</a>())) :: {<a href="typespecs.html#built-in-types">list</a>(), <a href="typespecs.html#built-in-types">list</a>()}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Splits the <code class="inline">enumerable</code> in two lists according to the given function <code class="inline">fun</code>.</p>
<p>Splits the given <code class="inline">enumerable</code> in two lists by calling <code class="inline">fun</code> with each element
in the <code class="inline">enumerable</code> as its only argument. Returns a tuple with the first list
containing all the elements in <code class="inline">enumerable</code> for which applying <code class="inline">fun</code> returned
a truthy value, and a second list with all the elements for which applying
<code class="inline">fun</code> returned a falsy value (<code class="inline">false</code> or <code class="inline">nil</code>).</p>
<p>The elements in both the returned lists are in the same relative order as they
were in the original enumerable (if such enumerable was ordered, e.g., a
list); see the examples below.</p>
<h2 id="split_with/2-examples" class="section-heading">
  <a href="#split_with/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">Enum</span><span class="o">.</span><span class="n">split_with</span><span class="p" data-group-id="1251175296-1">(</span><span class="p" data-group-id="1251175296-2">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="1251175296-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1251175296-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="n">rem</span><span class="p" data-group-id="1251175296-4">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1251175296-4">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="1251175296-3">end</span><span class="p" data-group-id="1251175296-1">)</span><span class="w">
</span><span class="p" data-group-id="1251175296-5">{</span><span class="p" data-group-id="1251175296-6">[</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="1251175296-6">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1251175296-7">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="1251175296-7">]</span><span class="p" data-group-id="1251175296-5">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">split_with</span><span class="p" data-group-id="1251175296-8">(</span><span class="p" data-group-id="1251175296-9">%{</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="o">-</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">1</span><span class="p">,</span><span class="w"> </span><span class="ss">d</span><span class="p">:</span><span class="w"> </span><span class="o">-</span><span class="mi">3</span><span class="p" data-group-id="1251175296-9">}</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1251175296-10">fn</span><span class="w"> </span><span class="p" data-group-id="1251175296-11">{</span><span class="c">_k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p" data-group-id="1251175296-11">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k" data-group-id="1251175296-10">end</span><span class="p" data-group-id="1251175296-8">)</span><span class="w">
</span><span class="p" data-group-id="1251175296-12">{</span><span class="p" data-group-id="1251175296-13">[</span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="o">-</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="o">-</span><span class="mi">3</span><span class="p" data-group-id="1251175296-13">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1251175296-14">[</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">1</span><span class="p" data-group-id="1251175296-14">]</span><span class="p" data-group-id="1251175296-12">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">split_with</span><span class="p" data-group-id="1251175296-15">(</span><span class="p" data-group-id="1251175296-16">%{</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="o">-</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">1</span><span class="p">,</span><span class="w"> </span><span class="ss">d</span><span class="p">:</span><span class="w"> </span><span class="o">-</span><span class="mi">3</span><span class="p" data-group-id="1251175296-16">}</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1251175296-17">fn</span><span class="w"> </span><span class="p" data-group-id="1251175296-18">{</span><span class="c">_k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p" data-group-id="1251175296-18">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">50</span><span class="w"> </span><span class="k" data-group-id="1251175296-17">end</span><span class="p" data-group-id="1251175296-15">)</span><span class="w">
</span><span class="p" data-group-id="1251175296-19">{</span><span class="p" data-group-id="1251175296-20">[</span><span class="p" data-group-id="1251175296-20">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1251175296-21">[</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="o">-</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">1</span><span class="p">,</span><span class="w"> </span><span class="ss">d</span><span class="p">:</span><span class="w"> </span><span class="o">-</span><span class="mi">3</span><span class="p" data-group-id="1251175296-21">]</span><span class="p" data-group-id="1251175296-19">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">split_with</span><span class="p" data-group-id="1251175296-22">(</span><span class="p" data-group-id="1251175296-23">%{</span><span class="p" data-group-id="1251175296-23">}</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1251175296-24">fn</span><span class="w"> </span><span class="p" data-group-id="1251175296-25">{</span><span class="c">_k</span><span class="p">,</span><span class="w"> </span><span class="n">v</span><span class="p" data-group-id="1251175296-25">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">50</span><span class="w"> </span><span class="k" data-group-id="1251175296-24">end</span><span class="p" data-group-id="1251175296-22">)</span><span class="w">
</span><span class="p" data-group-id="1251175296-26">{</span><span class="p" data-group-id="1251175296-27">[</span><span class="p" data-group-id="1251175296-27">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1251175296-28">[</span><span class="p" data-group-id="1251175296-28">]</span><span class="p" data-group-id="1251175296-26">}</span></code></pre>
  </section>
</div>
<div class="detail" id="sum/1">
    <div class="detail-header">
    <a href="#sum/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">sum(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2412" 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>sum(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">number</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the sum of all elements.</p>
<p>Raises <a href="ArithmeticError.html"><code class="inline">ArithmeticError</code></a> if <code class="inline">enumerable</code> contains a non-numeric value.</p>
<h2 id="sum/1-examples" class="section-heading">
  <a href="#sum/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">Enum</span><span class="o">.</span><span class="n">sum</span><span class="p" data-group-id="4274334084-1">(</span><span class="p" data-group-id="4274334084-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4274334084-2">]</span><span class="p" data-group-id="4274334084-1">)</span><span class="w">
</span><span class="mi">6</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(enumerable, amount)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2460" 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="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">integer</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Takes the first <code class="inline">amount</code> items from the enumerable.</p>
<p>If a negative <code class="inline">amount</code> is given, the <code class="inline">amount</code> of last values will be taken.
The <code class="inline">enumerable</code> will be enumerated once to retrieve the proper index and
the remaining calculation is performed from the end.</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">Enum</span><span class="o">.</span><span class="n">take</span><span class="p" data-group-id="8629446140-1">(</span><span class="p" data-group-id="8629446140-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8629446140-2">]</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="8629446140-1">)</span><span class="w">
</span><span class="p" data-group-id="8629446140-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="8629446140-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">take</span><span class="p" data-group-id="8629446140-4">(</span><span class="p" data-group-id="8629446140-5">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8629446140-5">]</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p" data-group-id="8629446140-4">)</span><span class="w">
</span><span class="p" data-group-id="8629446140-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8629446140-6">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">take</span><span class="p" data-group-id="8629446140-7">(</span><span class="p" data-group-id="8629446140-8">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8629446140-8">]</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="8629446140-7">)</span><span class="w">
</span><span class="p" data-group-id="8629446140-9">[</span><span class="p" data-group-id="8629446140-9">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">take</span><span class="p" data-group-id="8629446140-10">(</span><span class="p" data-group-id="8629446140-11">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="8629446140-11">]</span><span class="p">,</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p" data-group-id="8629446140-10">)</span><span class="w">
</span><span class="p" data-group-id="8629446140-12">[</span><span class="mi">3</span><span class="p" data-group-id="8629446140-12">]</span></code></pre>
  </section>
</div>
<div class="detail" id="take_every/2">
    <div class="detail-header">
    <a href="#take_every/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_every(enumerable, nth)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2494" 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_every(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">non_neg_integer</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns a list of every <code class="inline">nth</code> item in the enumerable,
starting with the first element.</p>
<p>The first item is always included, unless <code class="inline">nth</code> is 0.</p>
<p>The second argument specifying every <code class="inline">nth</code> item must be a non-negative
integer.</p>
<h2 id="take_every/2-examples" class="section-heading">
  <a href="#take_every/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">Enum</span><span class="o">.</span><span class="n">take_every</span><span class="p" data-group-id="4250436960-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="4250436960-1">)</span><span class="w">
</span><span class="p" data-group-id="4250436960-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p" data-group-id="4250436960-2">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">take_every</span><span class="p" data-group-id="4250436960-3">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p" data-group-id="4250436960-3">)</span><span class="w">
</span><span class="p" data-group-id="4250436960-4">[</span><span class="p" data-group-id="4250436960-4">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">take_every</span><span class="p" data-group-id="4250436960-5">(</span><span class="p" data-group-id="4250436960-6">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4250436960-6">]</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="4250436960-5">)</span><span class="w">
</span><span class="p" data-group-id="4250436960-7">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4250436960-7">]</span></code></pre>
  </section>
</div>
<div class="detail" id="take_random/2">
    <div class="detail-header">
    <a href="#take_random/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_random(enumerable, count)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2542" 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_random(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">non_neg_integer</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Takes <code class="inline">count</code> random items from <code class="inline">enumerable</code>.</p>
<p>Notice this function will traverse the whole <code class="inline">enumerable</code> to
get the random sublist.</p>
<p>See <a href="#random/1"><code class="inline">random/1</code></a> for notes on implementation and random seed.</p>
<h2 id="take_random/2-examples" class="section-heading">
  <a href="#take_random/2-examples" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Examples
</h2>

<pre><code class="nohighlight makeup elixir"><span class="c1"># Although not necessary, let&#39;s seed the random algorithm</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="ss">:rand</span><span class="o">.</span><span class="n">seed</span><span class="p" data-group-id="6305713623-1">(</span><span class="ss">:exsplus</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6305713623-2">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="6305713623-2">}</span><span class="p" data-group-id="6305713623-1">)</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">take_random</span><span class="p" data-group-id="6305713623-3">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="6305713623-3">)</span><span class="w">
</span><span class="p" data-group-id="6305713623-4">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p" data-group-id="6305713623-4">]</span><span class="w">
</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">take_random</span><span class="p" data-group-id="6305713623-5">(</span><span class="sc">?a</span><span class="o">.</span><span class="o">.</span><span class="sc">?z</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="6305713623-5">)</span><span class="w">
</span><span class="sc">&#39;ipybz&#39;</span></code></pre>
  </section>
</div>
<div class="detail" id="take_while/2">
    <div class="detail-header">
    <a href="#take_while/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_while(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2587" 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_while(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">as_boolean</a>(<a href="typespecs.html#built-in-types">term</a>()))) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Takes the items from the beginning of the enumerable while <code class="inline">fun</code> returns
a truthy value.</p>
<h2 id="take_while/2-examples" class="section-heading">
  <a href="#take_while/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">Enum</span><span class="o">.</span><span class="n">take_while</span><span class="p" data-group-id="6515018277-1">(</span><span class="p" data-group-id="6515018277-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="6515018277-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="6515018277-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="n">x</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k" data-group-id="6515018277-3">end</span><span class="p" data-group-id="6515018277-1">)</span><span class="w">
</span><span class="p" data-group-id="6515018277-4">[</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="6515018277-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(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2613" 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="#t:t/0">t</a>()) :: [<a href="#t:element/0">element</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Converts <code class="inline">enumerable</code> to a list.</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">Enum</span><span class="o">.</span><span class="n">to_list</span><span class="p" data-group-id="5193739351-1">(</span><span class="mi">1</span><span class="o">.</span><span class="o">.</span><span class="mi">3</span><span class="p" data-group-id="5193739351-1">)</span><span class="w">
</span><span class="p" data-group-id="5193739351-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="5193739351-2">]</span></code></pre>
  </section>
</div>
<div class="detail" id="uniq/1">
    <div class="detail-header">
    <a href="#uniq/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">uniq(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2625" 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>uniq(<a href="#t:t/0">t</a>()) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Enumerates the <code class="inline">enumerable</code>, removing all duplicated elements.</p>
<h2 id="uniq/1-examples" class="section-heading">
  <a href="#uniq/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">Enum</span><span class="o">.</span><span class="n">uniq</span><span class="p" data-group-id="2334830294-1">(</span><span class="p" data-group-id="2334830294-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="2334830294-2">]</span><span class="p" data-group-id="2334830294-1">)</span><span class="w">
</span><span class="p" data-group-id="2334830294-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2334830294-3">]</span></code></pre>
  </section>
</div>
<div class="detail" id="uniq_by/2">
    <div class="detail-header">
    <a href="#uniq_by/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">uniq_by(enumerable, fun)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2661" 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>uniq_by(<a href="#t:t/0">t</a>(), (<a href="#t:element/0">element</a>() -> <a href="typespecs.html#built-in-types">term</a>())) :: <a href="typespecs.html#built-in-types">list</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Enumerates the <code class="inline">enumerable</code>, by removing the elements for which
function <code class="inline">fun</code> returned duplicate items.</p>
<p>The function <code class="inline">fun</code> maps every element to a term. Two elements are
considered duplicates if the return value of <code class="inline">fun</code> is equal for
both of them.</p>
<p>The first occurrence of each element is kept.</p>
<h2 id="uniq_by/2-example" class="section-heading">
  <a href="#uniq_by/2-example" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Example
</h2>

<pre><code class="nohighlight makeup elixir"><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">uniq_by</span><span class="p" data-group-id="1470229813-1">(</span><span class="p" data-group-id="1470229813-2">[</span><span class="p" data-group-id="1470229813-3">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:x</span><span class="p" data-group-id="1470229813-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1470229813-4">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:y</span><span class="p" data-group-id="1470229813-4">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1470229813-5">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:z</span><span class="p" data-group-id="1470229813-5">}</span><span class="p" data-group-id="1470229813-2">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1470229813-6">fn</span><span class="w"> </span><span class="p" data-group-id="1470229813-7">{</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="bp">_</span><span class="p" data-group-id="1470229813-7">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k" data-group-id="1470229813-6">end</span><span class="p" data-group-id="1470229813-1">)</span><span class="w">
</span><span class="p" data-group-id="1470229813-8">[</span><span class="p" data-group-id="1470229813-9">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:x</span><span class="p" data-group-id="1470229813-9">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1470229813-10">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:y</span><span class="p" data-group-id="1470229813-10">}</span><span class="p" data-group-id="1470229813-8">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">uniq_by</span><span class="p" data-group-id="1470229813-11">(</span><span class="p" data-group-id="1470229813-12">[</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1470229813-13">{</span><span class="ss">:tea</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1470229813-13">}</span><span class="p">,</span><span class="w"> </span><span class="ss">b</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1470229813-14">{</span><span class="ss">:tea</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1470229813-14">}</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1470229813-15">{</span><span class="ss">:coffee</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="1470229813-15">}</span><span class="p" data-group-id="1470229813-12">]</span><span class="p">,</span><span class="w"> </span><span class="k" data-group-id="1470229813-16">fn</span><span class="w"> </span><span class="p" data-group-id="1470229813-17">{</span><span class="bp">_</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p" data-group-id="1470229813-17">}</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="k" data-group-id="1470229813-16">end</span><span class="p" data-group-id="1470229813-11">)</span><span class="w">
</span><span class="p" data-group-id="1470229813-18">[</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1470229813-19">{</span><span class="ss">:tea</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="1470229813-19">}</span><span class="p">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1470229813-20">{</span><span class="ss">:coffee</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="1470229813-20">}</span><span class="p" data-group-id="1470229813-18">]</span></code></pre>
  </section>
</div>
<div class="detail" id="unzip/1">
    <div class="detail-header">
    <a href="#unzip/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">unzip(enumerable)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2687" 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>unzip(<a href="#t:t/0">t</a>()) :: {[<a href="#t:element/0">element</a>()], [<a href="#t:element/0">element</a>()]}</pre>
      </div>
  </div>
  <section class="docstring">
<p>Opposite of <a href="Enum.html#zip/2"><code class="inline">Enum.zip/2</code></a>; extracts a two-element tuples from the
enumerable and groups them together.</p>
<p>It takes an enumerable with items being two-element tuples and returns
a tuple with two lists, each of which is formed by the first and
second element of each tuple, respectively.</p>
<p>This function fails unless <code class="inline">enumerable</code> is or can be converted into a
list of tuples with <em>exactly</em> two elements in each tuple.</p>
<h2 id="unzip/1-examples" class="section-heading">
  <a href="#unzip/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">Enum</span><span class="o">.</span><span class="n">unzip</span><span class="p" data-group-id="4137391084-1">(</span><span class="p" data-group-id="4137391084-2">[</span><span class="p" data-group-id="4137391084-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="4137391084-3">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4137391084-4">{</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="4137391084-4">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4137391084-5">{</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="4137391084-5">}</span><span class="p" data-group-id="4137391084-2">]</span><span class="p" data-group-id="4137391084-1">)</span><span class="w">
</span><span class="p" data-group-id="4137391084-6">{</span><span class="p" data-group-id="4137391084-7">[</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">:c</span><span class="p" data-group-id="4137391084-7">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4137391084-8">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="4137391084-8">]</span><span class="p" data-group-id="4137391084-6">}</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">unzip</span><span class="p" data-group-id="4137391084-9">(</span><span class="p" data-group-id="4137391084-10">%{</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="4137391084-10">}</span><span class="p" data-group-id="4137391084-9">)</span><span class="w">
</span><span class="p" data-group-id="4137391084-11">{</span><span class="p" data-group-id="4137391084-12">[</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="4137391084-12">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4137391084-13">[</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="4137391084-13">]</span><span class="p" data-group-id="4137391084-11">}</span></code></pre>
  </section>
</div>
<div class="detail" id="with_index/2">
  
    <span id="with_index/1"></span>
  <div class="detail-header">
    <a href="#with_index/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">with_index(enumerable, offset \\ 0)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2712" 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>with_index(<a href="#t:t/0">t</a>(), <a href="typespecs.html#basic-types">integer</a>()) :: [{<a href="#t:element/0">element</a>(), <a href="#t:index/0">index</a>()}]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the enumerable with each element wrapped in a tuple
alongside its index.</p>
<p>If an <code class="inline">offset</code> is given, we will index from the given offset instead of from zero.</p>
<h2 id="with_index/2-examples" class="section-heading">
  <a href="#with_index/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">Enum</span><span class="o">.</span><span class="n">with_index</span><span class="p" data-group-id="5819624230-1">(</span><span class="p" data-group-id="5819624230-2">[</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">:c</span><span class="p" data-group-id="5819624230-2">]</span><span class="p" data-group-id="5819624230-1">)</span><span class="w">
</span><span class="p" data-group-id="5819624230-3">[</span><span class="ss">a</span><span class="p">:</span><span class="w"> </span><span class="mi">0</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">,</span><span class="w"> </span><span class="ss">c</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="5819624230-3">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">with_index</span><span class="p" data-group-id="5819624230-4">(</span><span class="p" data-group-id="5819624230-5">[</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">:c</span><span class="p" data-group-id="5819624230-5">]</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="5819624230-4">)</span><span class="w">
</span><span class="p" data-group-id="5819624230-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">4</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">5</span><span class="p" data-group-id="5819624230-6">]</span></code></pre>
  </section>
</div>
<div class="detail" id="zip/1">
    <div class="detail-header">
    <a href="#zip/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">zip(enumerables)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2765" 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.4.0)</span>
    
      <div class="specs">
          <pre>zip([<a href="#t:t/0">t</a>()]) :: <a href="#t:t/0">t</a>()</pre>
          <pre>zip(<a href="#t:t/0">t</a>()) :: <a href="#t:t/0">t</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Zips corresponding elements from a finite collection of enumerables
into one list of tuples.</p>
<p>The zipping finishes as soon as any enumerable in the given collection completes.</p>
<h2 id="zip/1-examples" class="section-heading">
  <a href="#zip/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">Enum</span><span class="o">.</span><span class="n">zip</span><span class="p" data-group-id="3737684810-1">(</span><span class="p" data-group-id="3737684810-2">[</span><span class="p" data-group-id="3737684810-3">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="3737684810-3">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3737684810-4">[</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">:c</span><span class="p" data-group-id="3737684810-4">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3737684810-5">[</span><span class="s">&quot;foo&quot;</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="s">&quot;baz&quot;</span><span class="p" data-group-id="3737684810-5">]</span><span class="p" data-group-id="3737684810-2">]</span><span class="p" data-group-id="3737684810-1">)</span><span class="w">
</span><span class="p" data-group-id="3737684810-6">[</span><span class="p" data-group-id="3737684810-7">{</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="s">&quot;foo&quot;</span><span class="p" data-group-id="3737684810-7">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3737684810-8">{</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="s">&quot;bar&quot;</span><span class="p" data-group-id="3737684810-8">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3737684810-9">{</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;baz&quot;</span><span class="p" data-group-id="3737684810-9">}</span><span class="p" data-group-id="3737684810-6">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">zip</span><span class="p" data-group-id="3737684810-10">(</span><span class="p" data-group-id="3737684810-11">[</span><span class="p" data-group-id="3737684810-12">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="3737684810-12">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3737684810-13">[</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">:c</span><span class="p" data-group-id="3737684810-13">]</span><span class="p" data-group-id="3737684810-11">]</span><span class="p" data-group-id="3737684810-10">)</span><span class="w">
</span><span class="p" data-group-id="3737684810-14">[</span><span class="p" data-group-id="3737684810-15">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="3737684810-15">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3737684810-16">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="3737684810-16">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3737684810-17">{</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p" data-group-id="3737684810-17">}</span><span class="p" data-group-id="3737684810-14">]</span></code></pre>
  </section>
</div>
<div class="detail" id="zip/2">
    <div class="detail-header">
    <a href="#zip/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">zip(enumerable1, enumerable2)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/elixir/lib/enum.ex#L2740" 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>zip(<a href="#t:t/0">t</a>(), <a href="#t:t/0">t</a>()) :: [{<a href="typespecs.html#basic-types">any</a>(), <a href="typespecs.html#basic-types">any</a>()}]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Zips corresponding elements from two enumerables into one list
of tuples.</p>
<p>The zipping finishes as soon as any enumerable completes.</p>
<h2 id="zip/2-examples" class="section-heading">
  <a href="#zip/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">Enum</span><span class="o">.</span><span class="n">zip</span><span class="p" data-group-id="0606489245-1">(</span><span class="p" data-group-id="0606489245-2">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="0606489245-2">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0606489245-3">[</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">:c</span><span class="p" data-group-id="0606489245-3">]</span><span class="p" data-group-id="0606489245-1">)</span><span class="w">
</span><span class="p" data-group-id="0606489245-4">[</span><span class="p" data-group-id="0606489245-5">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="0606489245-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0606489245-6">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="0606489245-6">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0606489245-7">{</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p" data-group-id="0606489245-7">}</span><span class="p" data-group-id="0606489245-4">]</span><span class="w">

</span><span class="gp unselectable">iex&gt; </span><span class="nc">Enum</span><span class="o">.</span><span class="n">zip</span><span class="p" data-group-id="0606489245-8">(</span><span class="p" data-group-id="0606489245-9">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p" data-group-id="0606489245-9">]</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0606489245-10">[</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">:c</span><span class="p" data-group-id="0606489245-10">]</span><span class="p" data-group-id="0606489245-8">)</span><span class="w">
</span><span class="p" data-group-id="0606489245-11">[</span><span class="p" data-group-id="0606489245-12">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">:a</span><span class="p" data-group-id="0606489245-12">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0606489245-13">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="ss">:b</span><span class="p" data-group-id="0606489245-13">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0606489245-14">{</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="ss">:c</span><span class="p" data-group-id="0606489245-14">}</span><span class="p" data-group-id="0606489245-11">]</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>