<pre style="background-color: #282A36; color: #F8F8F2; padding: 1em; border-radius: 4px; overflow-x: auto;"><span style="color: #7A7A7A; font-style: italic"># Fibonacci with memoization</span>
<span style="color: #E64747; font-weight: bold">module</span> <span style="color: #F8F8F2">Fib</span>

<span style="color: #E64747; font-weight: bold">const</span> <span style="color: #F8F8F2">cache</span> <span style="color: #F8F8F2">=</span> <span style="color: #75D7EC; text-decoration: underline">Dict</span><span style="color: #F8F8F2">{</span><span style="color: #75D7EC; text-decoration: underline">Int</span><span style="color: #F8F8F2">,</span><span style="color: #75D7EC; text-decoration: underline">BigInt</span><span style="color: #F8F8F2">}</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">)</span>

<span style="color: #42E66C">&quot;&quot;&quot;Calculate the nth Fibonacci number.&quot;&quot;&quot;</span>
<span style="color: #E64747; font-weight: bold">function</span> <span style="color: #9B6BDF; font-weight: bold; font-style: italic">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span><span style="color: #F8F8F2">::</span><span style="color: #75D7EC; text-decoration: underline">Int</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">::</span><span style="color: #75D7EC; text-decoration: underline">BigInt</span>
    <span style="color: #F8F8F2">n</span> <span style="color: #F8F8F2">&lt;=</span> <span style="color: #E4F34A">1</span> <span style="color: #F8F8F2">&amp;&amp;</span> <span style="color: #E64747; font-weight: bold">return</span> <span style="color: #9B6BDF; font-weight: bold; font-style: italic">BigInt</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span><span style="color: #F8F8F2">)</span>
    <span style="color: #9B6BDF; font-weight: bold; font-style: italic">get!</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">cache</span><span style="color: #F8F8F2">,</span> <span style="color: #F8F8F2">n</span><span style="color: #F8F8F2">)</span> <span style="color: #E64747; font-weight: bold">do</span>
        <span style="color: #9B6BDF; font-weight: bold; font-style: italic">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span> <span style="color: #F8F8F2">-</span> <span style="color: #E4F34A">1</span><span style="color: #F8F8F2">)</span> <span style="color: #F8F8F2">+</span> <span style="color: #9B6BDF; font-weight: bold; font-style: italic">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">n</span> <span style="color: #F8F8F2">-</span> <span style="color: #E4F34A">2</span><span style="color: #F8F8F2">)</span>
    <span style="color: #E64747; font-weight: bold">end</span>
<span style="color: #E64747; font-weight: bold">end</span>

<span style="color: #E64747; font-weight: bold">for</span> <span style="color: #F8F8F2">i</span> <span style="color: #F8F8F2">=</span> <span style="color: #E4F34A">1</span><span style="color: #F8F8F2">:</span><span style="color: #E4F34A">10</span>
    <span style="color: #F8F8F2">Base</span><span style="color: #F8F8F2">.</span><span style="color: #9B6BDF; font-weight: bold; font-style: italic">println</span><span style="color: #F8F8F2">(</span><span style="color: #42E66C">&quot;fib(</span><span style="color: #F8F8F2">$</span><span style="color: #F8F8F2">i</span><span style="color: #42E66C">) = </span><span style="color: #F8F8F2">$</span><span style="color: #F8F8F2">(</span><span style="color: #9B6BDF; font-weight: bold; font-style: italic">fib</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">i</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">)</span><span style="color: #42E66C">&quot;</span><span style="color: #F8F8F2">)</span>
<span style="color: #E64747; font-weight: bold">end</span>

<span style="color: #7A7A7A; font-style: italic"># Demonstrate qualified calls</span>
<span style="color: #F8F8F2">Base</span><span style="color: #F8F8F2">.</span><span style="color: #9B6BDF; font-weight: bold; font-style: italic">length</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">cache</span><span style="color: #F8F8F2">)</span>
<span style="color: #F8F8F2">Core</span><span style="color: #F8F8F2">.</span><span style="color: #9B6BDF; font-weight: bold; font-style: italic">typeof</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">cache</span><span style="color: #F8F8F2">)</span>
<span style="color: #F8F8F2">Base</span><span style="color: #F8F8F2">.</span><span style="color: #F8F8F2">Iterators</span><span style="color: #F8F8F2">.</span><span style="color: #9B6BDF; font-weight: bold; font-style: italic">take</span><span style="color: #F8F8F2">(</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">:</span><span style="color: #E4F34A">10</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">3</span><span style="color: #F8F8F2">)</span>

<span style="color: #E64747; font-weight: bold">end</span> <span style="color: #7A7A7A; font-style: italic"># module</span>

<span style="color: #7A7A7A; font-style: italic">#=
Additional syntax coverage from old julia sample:
Nested comments #= can be #= deeply =# nested =#
=#</span>

<span style="color: #7A7A7A; font-style: italic"># Array and tuple literals</span>
<span style="color: #F8F8F2">[</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">3</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">3</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">4</span><span style="color: #F8F8F2">]</span><span style="color: #F8F8F2">[</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">:</span><span style="color: #FF79C6">end</span><span style="color: #F8F8F2">]</span>
<span style="color: #F8F8F2">(</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">2</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">1.0</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">[</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">:</span><span style="color: #E4F34A">2</span><span style="color: #F8F8F2">]</span>
<span style="color: #F8F8F2">[</span><span style="color: #F8F8F2">(</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">3</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">,</span> <span style="color: #F8F8F2">(</span><span style="color: #E4F34A">3</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">4</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">]</span><span style="color: #F8F8F2">[</span><span style="color: #FF79C6">end</span><span style="color: #F8F8F2">-</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">]</span>
<span style="color: #F8F8F2">[</span><span style="color: #F8F8F2">(</span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">3</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">,</span> <span style="color: #F8F8F2">(</span><span style="color: #E4F34A">3</span><span style="color: #F8F8F2">,</span> <span style="color: #E4F34A">4</span><span style="color: #F8F8F2">)</span><span style="color: #F8F8F2">]</span><span style="color: #F8F8F2">[</span><span style="color: #FF79C6">begin</span><span style="color: #F8F8F2">]</span>

<span style="color: #7A7A7A; font-style: italic"># Control flow</span>
<span style="color: #E64747; font-weight: bold">if</span> <span style="color: #F8F8F2">x</span> <span style="color: #E64747; font-weight: bold">in</span> <span style="color: #F8F8F2">y</span>
    <span style="color: #F1FA8C">nothing</span>
<span style="color: #E64747; font-weight: bold">end</span>
<span style="color: #F8F8F2">x</span> <span style="color: #E64747; font-weight: bold">in</span> <span style="color: #F8F8F2">y</span> <span style="color: #E64747; font-weight: bold">?</span> <span style="color: #E4F34A">false</span> <span style="color: #E64747; font-weight: bold">:</span> <span style="color: #E4F34A">true</span>

<span style="color: #E64747; font-weight: bold">let</span> <span style="color: #F8F8F2">x</span> <span style="color: #F8F8F2">=</span> <span style="color: #E4F34A">1</span>
    <span style="color: #E64747; font-weight: bold">local</span> <span style="color: #F8F8F2">t</span>
    <span style="color: #E64747; font-weight: bold">global</span> <span style="color: #F8F8F2">s</span>
    <span style="color: #F8F8F2">t</span> <span style="color: #F8F8F2">=</span> <span style="color: #F8F8F2">x</span>
<span style="color: #E64747; font-weight: bold">end</span>

<span style="color: #7A7A7A; font-style: italic"># Type definitions</span>
<span style="color: #E64747; font-weight: bold">abstract</span> <span style="color: #E64747; font-weight: bold">type</span> <span style="color: #75D7EC; text-decoration: underline">AbstractPoint</span><span style="color: #F8F8F2">{</span><span style="color: #75D7EC; text-decoration: underline">T</span><span style="color: #F8F8F2">}</span><span style="color: #75D7EC; text-decoration: underline"> </span><span style="color: #F8F8F2">&lt;:</span><span style="color: #75D7EC; text-decoration: underline"> </span><span style="color: #75D7EC; text-decoration: underline">Number</span> <span style="color: #E64747; font-weight: bold">end</span>
<span style="color: #E64747; font-weight: bold">mutable</span> <span style="color: #E64747; font-weight: bold">struct</span> <span style="color: #75D7EC; text-decoration: underline">Point</span><span style="color: #F8F8F2">{</span><span style="color: #75D7EC; text-decoration: underline">T</span><span style="color: #F8F8F2">}</span> <span style="color: #E64747; font-weight: bold">where</span> <span style="color: #F8F8F2">{</span><span style="color: #75D7EC; text-decoration: underline">T</span><span style="color: #F8F8F2">&lt;:</span><span style="color: #75D7EC; text-decoration: underline">Number</span><span style="color: #F8F8F2">}</span><span style="color: #75D7EC; text-decoration: underline">
    x</span><span style="color: #F8F8F2">::</span><span style="color: #75D7EC; text-decoration: underline">T</span><span style="color: #75D7EC; text-decoration: underline">
    y</span><span style="color: #F8F8F2">::</span><span style="color: #75D7EC; text-decoration: underline">T
    </span><span style="color: #9B6BDF; font-weight: bold; font-style: italic">Point</span><span style="color: #F8F8F2">(</span><span style="color: #F8F8F2">x</span><span style="color: #F8F8F2">)</span><span style="color: #75D7EC; text-decoration: underline"> </span><span style="color: #F8F8F2">=</span><span style="color: #75D7EC; text-decoration: underline"> new</span><span style="color: #F8F8F2">(</span><span style="color: #75D7EC; text-decoration: underline">x</span><span style="color: #F8F8F2">,</span><span style="color: #75D7EC; text-decoration: underline"> 2x</span><span style="color: #F8F8F2">)</span><span style="color: #75D7EC; text-decoration: underline">
end
struct Empty</span><span style="color: #F8F8F2">{</span><span style="color: #75D7EC; text-decoration: underline">T</span><span style="color: #F8F8F2">}</span><span style="color: #75D7EC; text-decoration: underline"> end
primitive type Float16Custom </span><span style="color: #F8F8F2">&lt;:</span><span style="color: #75D7EC; text-decoration: underline"> </span><span style="color: #8BE9FD; text-decoration: underline">AbstractFloat</span><span style="color: #75D7EC; text-decoration: underline"> 16 end

</span><span style="color: #7A7A7A; font-style: italic"># Macros</span><span style="color: #75D7EC; text-decoration: underline">
macro something</span><span style="color: #F8F8F2">(</span><span style="color: #75D7EC; text-decoration: underline">x</span><span style="color: #F8F8F2">...</span><span style="color: #F8F8F2">)</span>
    <span style="color: #75D7EC; text-decoration: underline">nothing</span>
<span style="color: #E64747; font-weight: bold">end</span>

<span style="color: #7A7A7A; font-style: italic"># Character literals</span>
<span style="color: #42E66C">&#39; &#39;</span><span style="color: #F8F8F2">,</span> <span style="color: #42E66C">&#39;\n&#39;</span><span style="color: #F8F8F2">,</span> <span style="color: #42E66C">&#39;\&#39;&#39;</span><span style="color: #F8F8F2">,</span> <span style="color: #42E66C">&#39;&quot;&#39;</span><span style="color: #F8F8F2">,</span> <span style="color: #42E66C">&#39;\u1234&#39;</span><span style="color: #F8F8F2">,</span> <span style="color: #42E66C">&#39;⻆&#39;</span>

<span style="color: #7A7A7A; font-style: italic"># String literals</span>
<span style="color: #42E66C">&quot;&quot;&quot;Multiline
string&quot;&quot;&quot;</span>
<span style="color: #42E66C">&quot; </span><span style="color: #F8F8F2">$</span><span style="color: #F8F8F2">x</span><span style="color: #42E66C"> </span><span style="color: #F8F8F2">$</span><span style="color: #F8F8F2">(</span><span style="color: #E64747; font-weight: bold">let</span><span style="color: #42E66C"> </span><span style="color: #F8F8F2">x</span><span style="color: #42E66C"> </span><span style="color: #F8F8F2">=</span><span style="color: #42E66C"> </span><span style="color: #F8F8F2">y</span><span style="color: #42E66C"> </span><span style="color: #F8F8F2">+</span><span style="color: #42E66C"> </span><span style="color: #E4F34A">1</span><span style="color: #F8F8F2">;</span><span style="color: #42E66C"> </span><span style="color: #F8F8F2">x</span><span style="color: #F8F8F2">^</span><span style="color: #E4F34A">2</span><span style="color: #F8F8F2">;</span><span style="color: #42E66C"> </span><span style="color: #E64747; font-weight: bold">end</span><span style="color: #F8F8F2">)</span><span style="color: #42E66C"> &quot;</span>
<span style="color: #E356A7; font-weight: bold; font-style: italic">r</span><span style="color: #42E66C">&quot;[a-z]+$xyz&quot;</span><span style="color: #F8F8F2">m</span>
<span style="color: #E356A7; font-weight: bold; font-style: italic">raw</span><span style="color: #42E66C">&quot;\n\n\r\t...\b&quot;</span>
<span style="color: #E356A7; font-weight: bold; font-style: italic">v</span><span style="color: #42E66C">&quot;0.0.2&quot;</span> <span style="color: #F8F8F2">≥</span> <span style="color: #E356A7; font-weight: bold; font-style: italic">v</span><span style="color: #42E66C">&quot;0.0.1&quot;</span>

<span style="color: #7A7A7A; font-style: italic"># Command literals</span>
<span style="color: #50FA7B">`echo </span><span style="color: #F8F8F2">$</span><span style="color: #F8F8F2">bar</span><span style="color: #50FA7B">`</span>

<span style="color: #7A7A7A; font-style: italic"># Number formats</span>
<span style="color: #E4F34A">1_000_000</span> <span style="color: #F8F8F2">+</span> <span style="color: #E4F34A">1.0e-9</span> <span style="color: #F8F8F2">*</span> <span style="color: #E4F34A">0.121</span> <span style="color: #F8F8F2">/</span> <span style="color: #E4F34A">1121.0</span>
<span style="color: #E4F34A">1.0f0</span> <span style="color: #F8F8F2">-</span> <span style="color: #E4F34A">1E-12</span>
<span style="color: #E4F34A">0b100_101_111</span>
<span style="color: #E4F34A">0o12123535</span>
<span style="color: #E4F34A">0x4312afAF</span>
</pre>