<pre style="background-color: #282A36; color: #F8F8F2; padding: 1em; border-radius: 4px; overflow-x: auto;"><span style="color: #6272A4"># A single line comment.</span>

<span style="color: #FF5555">defmodule</span> <span style="color: #8BE9FD">Greeter</span> <span style="color: #FF5555">do</span>
  <span style="color: #6272A4">@</span><span style="color: #BD93F9">moduledoc</span> <span style="color: #50FA7B">&quot;&quot;&quot;
  Greets people and computes Fibonacci numbers.
  &quot;&quot;&quot;</span>

  <span style="color: #F8F8F2">@</span><span style="color: #BD93F9">default_name</span> <span style="color: #50FA7B">&quot;world&quot;</span>

  <span style="color: #6272A4">@</span><span style="color: #BD93F9">doc</span> <span style="color: #50FA7B">&quot;Return a greeting for `name`.&quot;</span>
  <span style="color: #F8F8F2">@</span><span style="color: #BD93F9">spec</span> <span style="color: #BD93F9">greet</span><span style="color: #F8F8F2">(</span><span style="color: #8BE9FD">String</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">t</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">)</span> <span style="color: #F8F8F2">::</span> <span style="color: #8BE9FD">String</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">t</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">)</span>
  <span style="color: #FF5555">def</span> <span style="color: #BD93F9">greet</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">name</span> <span style="color: #F8F8F2">\\</span> <span style="color: #F8F8F2">@</span><span style="color: #F8F8F2">default_name</span><span style="color: #F8F8F2">)</span> <span style="color: #FF5555">do</span>
    <span style="color: #50FA7B">&quot;Hello, </span><span style="color: #F8F8F2">#{</span><span style="color: #F8F8F2">name</span><span style="color: #F8F8F2">}</span><span style="color: #50FA7B">!&quot;</span>
  <span style="color: #FF5555">end</span>

  <span style="color: #FF5555">def</span> <span style="color: #BD93F9">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F1FA8C">0</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">,</span> <span style="color: #69FF94">do: </span><span style="color: #F1FA8C">0</span>
  <span style="color: #FF5555">def</span> <span style="color: #BD93F9">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F1FA8C">1</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">,</span> <span style="color: #69FF94">do: </span><span style="color: #F1FA8C">1</span>
  <span style="color: #FF5555">def</span> <span style="color: #BD93F9">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span><span style="color: #F8F8F2">)</span> <span style="color: #FF5555">when</span> <span style="color: #BD93F9">is_integer</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span><span style="color: #F8F8F2">)</span> <span style="color: #FF5555">and</span> <span style="color: #F8F8F2">n</span> <span style="color: #F8F8F2">&gt;</span> <span style="color: #F1FA8C">1</span> <span style="color: #FF5555">do</span>
    <span style="color: #BD93F9">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span> <span style="color: #F8F8F2">-</span> <span style="color: #F1FA8C">1</span><span style="color: #F8F8F2">)</span> <span style="color: #F8F8F2">+</span> <span style="color: #BD93F9">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span> <span style="color: #F8F8F2">-</span> <span style="color: #F1FA8C">2</span><span style="color: #F8F8F2">)</span>
  <span style="color: #FF5555">end</span>

  <span style="color: #FF5555">def</span> <span style="color: #BD93F9">run</span> <span style="color: #FF5555">do</span>
    <span style="color: #F8F8F2">names</span> <span style="color: #F8F8F2">=</span> <span style="color: #69FF94">~</span><span style="color: #F8F8F2">w</span><span style="color: #69FF94">(</span><span style="color: #69FF94">Alice Bob Carol</span><span style="color: #69FF94">)</span>

    <span style="color: #F8F8F2">names</span>
    <span style="color: #F8F8F2">|&gt;</span> <span style="color: #8BE9FD">Enum</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">map</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">&amp;</span><span style="color: #F8F8F2">greet</span><span style="color: #F8F8F2">/</span><span style="color: #F1FA8C">1</span><span style="color: #F8F8F2">)</span>
    <span style="color: #F8F8F2">|&gt;</span> <span style="color: #8BE9FD">Enum</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">each</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">&amp;</span><span style="color: #8BE9FD">IO</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">puts</span><span style="color: #F8F8F2">/</span><span style="color: #F1FA8C">1</span><span style="color: #F8F8F2">)</span>

    <span style="color: #F8F8F2">config</span> <span style="color: #F8F8F2">=</span> <span style="color: #F8F8F2">%</span><span style="color: #F8F8F2">{</span><span style="color: #69FF94">retries: </span><span style="color: #F1FA8C">3</span><span style="color: #F8F8F2">,</span> <span style="color: #69FF94">timeout: </span><span style="color: #F1FA8C">5_000</span><span style="color: #F8F8F2">,</span> <span style="color: #69FF94">tags: </span><span style="color: #F8F8F2">[</span><span style="color: #69FF94">:fast</span><span style="color: #F8F8F2">,</span> <span style="color: #69FF94">:safe</span><span style="color: #F8F8F2">]</span><span style="color: #F8F8F2">}</span>
    <span style="color: #8BE9FD">IO</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">inspect</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">config</span><span style="color: #F8F8F2">,</span> <span style="color: #69FF94">label: </span><span style="color: #69FF94">:config</span><span style="color: #F8F8F2">)</span>

    <span style="color: #FF5555">for</span> <span style="color: #F8F8F2">n</span> <span style="color: #F8F8F2">&lt;-</span> <span style="color: #F1FA8C">0</span><span style="color: #F8F8F2">..</span><span style="color: #F1FA8C">10</span><span style="color: #F8F8F2">,</span> <span style="color: #BD93F9">rem</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span><span style="color: #F8F8F2">,</span> <span style="color: #F1FA8C">2</span><span style="color: #F8F8F2">)</span> <span style="color: #F8F8F2">==</span> <span style="color: #F1FA8C">0</span><span style="color: #F8F8F2">,</span> <span style="color: #69FF94">do: </span><span style="color: #BD93F9">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span><span style="color: #F8F8F2">)</span>
  <span style="color: #FF5555">end</span>
<span style="color: #FF5555">end</span>
</pre>