<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="310431" data-post-id="310431">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Harrygr" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Harrygr/120/17411_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Harrygr
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>For part 2 I just define a lookup map which retains the first and last letter of the word version of the number which means any overlaps will be captured:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">digits = %{
  "one" =&gt; "o1e",
  "two" =&gt; "t2o",
  "three" =&gt; "t3e",
  "four" =&gt; "f4r",
  "five" =&gt; "f5e",
  "six" =&gt; "s6x",
  "seven" =&gt; "s7n",
  "eight" =&gt; "e8t",
  "nine" =&gt; "n9e"
}
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">input
|&gt; Kino.Input.read()
|&gt; String.split("\n", trim: true)
|&gt; Stream.map(fn line -&gt;
  Enum.reduce(digits, line, fn {word, value}, acc -&gt; String.replace(acc, word, value) end)
end)
|&gt; Stream.map(fn line -&gt;
  line
  |&gt; String.split("", trim: true)
  |&gt; Stream.filter(&amp;Helper.is_numeric_string?/1)
  |&gt; Enum.into([])
end)
|&gt; Stream.map(&amp;"#{List.first(&amp;1)}#{List.last(&amp;1)}")
|&gt; Stream.map(&amp;Integer.parse/1)
|&gt; Stream.map(fn
  {i, _} -&gt; i
  :error -&gt; 0
end)
|&gt; Enum.sum()
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310431" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2023-day-1/60073/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-310431" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310431"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #41"></div>
  </section>
</div>
    <div class="postbit" id="310633" data-post-id="310633">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Aetherus" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Aetherus/120/17203_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Aetherus
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just tried solving Day 1 puzzles using the low-code platform developed by my company <img src="https://forum.elixirforum.com/images/emoji/apple/rofl.png?v=15" title=":rofl:" class="emoji" alt=":rofl:" loading="lazy" width="20" height="20"></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/f/4/f4f9a0aefecbac61db83a991b84a78aa808c4abd.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/f4f9a0aefecbac61db83a991b84a78aa808c4abd" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/f/4/f4f9a0aefecbac61db83a991b84a78aa808c4abd_2_690x371.jpeg" alt="image" data-base62-sha1="yX9kjjMyVcKAocsDNU3q6rPamL3" width="690" height="371" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/f/4/f4f9a0aefecbac61db83a991b84a78aa808c4abd_2_690x371.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/f/4/f4f9a0aefecbac61db83a991b84a78aa808c4abd_2_1035x556.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/f/4/f4f9a0aefecbac61db83a991b84a78aa808c4abd.jpeg 2x" data-dominant-color="F2F3F9"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1200×646 43.2 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>There’s no function to split a string into lines, so I have to heavily rely on regular expressions.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/2/1/21e0b47070a768c8854d0b834c6a0c464fe524dc.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/21e0b47070a768c8854d0b834c6a0c464fe524dc" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/2/1/21e0b47070a768c8854d0b834c6a0c464fe524dc_2_690x319.jpeg" alt="image" data-base62-sha1="4PHbqVO27FL1PL0QcVz3H0fSYPi" width="690" height="319" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/2/1/21e0b47070a768c8854d0b834c6a0c464fe524dc_2_690x319.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/2/1/21e0b47070a768c8854d0b834c6a0c464fe524dc_2_1035x478.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/2/1/21e0b47070a768c8854d0b834c6a0c464fe524dc.jpeg 2x" data-dominant-color="F4F4F9"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1200×556 41.9 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/f/f/ff1b4f5f48b42fad7921d9c72dee9751b0c5df62.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/ff1b4f5f48b42fad7921d9c72dee9751b0c5df62" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/f/f/ff1b4f5f48b42fad7921d9c72dee9751b0c5df62_2_690x369.jpeg" alt="image" data-base62-sha1="AoMgwjGDUGibnPru0vsPxhJcGMa" width="690" height="369" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/f/f/ff1b4f5f48b42fad7921d9c72dee9751b0c5df62_2_690x369.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/f/f/ff1b4f5f48b42fad7921d9c72dee9751b0c5df62_2_1035x553.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/f/f/ff1b4f5f48b42fad7921d9c72dee9751b0c5df62.jpeg 2x" data-dominant-color="F2F2F8"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1200×643 49.7 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>By the way, the whole platform is powered by Elixir and Phoenix <img src="https://forum.elixirforum.com/images/emoji/apple/grin.png?v=15" title=":grin:" class="emoji" alt=":grin:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310633" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2023-day-1/60073/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-310633" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310633"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #42"></div>
  </section>
</div>
    <div class="postbit" id="311172" data-post-id="311172">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="trnasistor" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  trnasistor
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Aetherus" data-post="43" data-topic="60073">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/aetherus/48/17203_2.png" class="avatar"> Aetherus:</div>
<blockquote>
<p>Just tried solving Day 1 puzzles using the low-code platform</p>
</blockquote>
</aside>
<p>This gives me an idea to someday try to solve a puzzle by programming a <a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array" rel="noopener nofollow ugc">FPGA</a> <img src="https://forum.elixirforum.com/images/emoji/apple/grin.png?v=15" title=":grin:" class="emoji" alt=":grin:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Aetherus" data-post="43" data-topic="60073">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/aetherus/48/17203_2.png" class="avatar"> Aetherus:</div>
<blockquote>
<p>By the way, the whole platform is powered by Elixir and Phoenix</p>
</blockquote>
</aside>
<p>Very cool!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="311172" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2023-day-1/60073/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-311172" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="311172"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #43"></div>
  </section>
</div>
    <div class="postbit" id="311173" data-post-id="311173">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Aetherus" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Aetherus/120/17203_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Aetherus
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>And a bit of Erlang, and a bit of React.js (I’m not the frontend guy)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="311173" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2023-day-1/60073/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-311173" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="311173"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #44"></div>
  </section>
</div>
    <div class="postbit" id="311248" data-post-id="311248">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="GavinLindridge" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/GavinLindridge/120/32924_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  GavinLindridge
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>First Elixir I’ve written and its definitely a new world but exciting to be learning something new</p>
<p>I’m not going to pretend like there wasn’t some chat gpt to help, but gotta start somewhere right</p>
<p>Any glaring improvements?</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule AdventOfCode.Day1 do
  @number_map %{
    "1" =&gt; 1,
    "2" =&gt; 2,
    "3" =&gt; 3,
    "4" =&gt; 4,
    "5" =&gt; 5,
    "6" =&gt; 6,
    "7" =&gt; 7,
    "8" =&gt; 8,
    "9" =&gt; 9,
    "one" =&gt; 1,
    "two" =&gt; 2,
    "three" =&gt; 3,
    "four" =&gt; 4,
    "five" =&gt; 5,
    "six" =&gt; 6,
    "seven" =&gt; 7,
    "eight" =&gt; 8,
    "nine" =&gt; 9
  }

  def find_sum_calibration_values_from_file(file) do
    File.read!(file) |&gt; find_sum_calibration_values()
  end

  def find_sum_calibration_values(text) do
    text
    |&gt; String.split("\n")
    |&gt; Enum.map(&amp;extract_first_last_numbers/1)
    |&gt; Enum.sum()
  end

  defp extract_first_last_numbers(line) do
    String.to_integer("#{find_first_number(line)}#{find_last_number(line)}")
  end

  defp find_first_number(str) do
    Enum.find_value(@number_map, fn {key, value} -&gt;
      if String.starts_with?(str, key), do: value, else: nil
    end) || find_first_number(String.slice(str, 1..-1))
  end

  defp find_last_number(str) do
    Enum.find_value(@number_map, fn {key, value} -&gt;
      if String.ends_with?(str, key), do: value, else: nil
    end) || find_last_number(String.slice(str, 0..-2))
  end
end

</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="311248" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2023-day-1/60073/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-311248" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="311248"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #45"></div>
  </section>
</div>
    <div class="postbit" id="311251" data-post-id="311251">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Aetherus" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Aetherus/120/17203_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Aetherus
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Welcome to the Elixir world.</p>
<p>For me, Elixir is the most interesting language I’ve ever programmed with. It opened a whole new world of thinking to me. It certainly requires a lot of practice, but it’s fun, especially the pattern matching part.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="311251" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2023-day-1/60073/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-311251" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="311251"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>