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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Today I want to propose a new function for Elixir kernel: <code>String.to_aoc_grid/1</code>. But it’s not yet implemented so here we go (again)</p>
<p>Ps. Yes, there is a boolean arg. Don’t try that at home.<br>
Pps. Counter + count. Naming is hard.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Aoc2025.Solutions.Y25.Day04 do
  alias AoC.Input

  @max_surrounding_rolls 3
  @roll ?@

  def parse(input, _part) do
    Input.read!(input)
    |&gt; String.trim()
    |&gt; String.split("\n", split: true)
    |&gt; Enum.map(&amp;String.to_charlist/1)
    |&gt; build_initial_grid()
  end

  def part_one(problem), do: count_accessible_rolls(problem)
  def part_two(problem), do: count_accessible_rolls(problem, true)

  def build_initial_grid(bare_grid_rows) do
    for {row_data, row_idx} &lt;- Enum.with_index(bare_grid_rows),
        {col_data, col_idx} &lt;- Enum.with_index(row_data),
        into: %{} do
      {{row_idx, col_idx}, col_data == @roll}
    end
  end

  def count_surrounding_rolls(grid, {row, col}) do
    for y &lt;- [row - 1, row, row + 1],
        x &lt;- [col - 1, col, col + 1],
        !(row == y &amp;&amp; col == x),
        reduce: 0 do
      counter -&gt; if grid[{y, x}], do: counter + 1, else: counter
    end
  end

  def count_accessible_rolls(problem, reduce \\ false, counter \\ 0) do
    {grid, count} =
      Enum.reduce(problem, {problem, 0}, fn
        {_cell, false}, acc -&gt;
          acc

        {cell, true}, {grid, count} = acc -&gt;
          if count_surrounding_rolls(problem, cell) &gt; @max_surrounding_rolls,
            do: acc,
            else: {%{grid | cell =&gt; false}, count + 1}
      end)

    if reduce &amp;&amp; count &gt; 0 do
      count_accessible_rolls(grid, reduce, counter + count)
    else
      counter + count
    end
  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="379334" 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-2025-day-4/73543/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-379334" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379334"
                     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 #11"></div>
  </section>
</div>
    <div class="postbit" id="379336" data-post-id="379336">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It’s a homegrown one using <a href="https://www.erlang.org/doc/apps/stdlib/array.html" class="inline-onebox" rel="nofollow">array — OTP 29.0.2 (stdlib 8.0.1)</a> plus dimension info so that it can convert <code>{x, y}</code> into <code>x + y * x_max</code> etc.</p>
<p>I think part of the fun of solving AOC is growing your own little utility libraries over time. I had so much fun improving my backtracking library, for example, and can’t wait for another problem that would require it.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379336" 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-2025-day-4/73543/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-379336" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379336"
                     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 #12"></div>
  </section>
</div>
    <div class="postbit" id="379344" data-post-id="379344">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-379344-h-2025-dec-04-1" class="anchor" href="#p-379344-h-2025-dec-04-1" aria-label="Heading link" rel="nofollow"></a>2025 Dec 04</h1>
<h2><a name="p-379344-printing-department-2" class="anchor" href="#p-379344-printing-department-2" aria-label="Heading link" rel="nofollow"></a>Printing Department</h2>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Forklift do
  def parse_line({line, y}, set) do
    String.trim(line)
      |&gt; to_charlist()
      |&gt; Enum.with_index()
      |&gt; Enum.reduce(set, fn {ch, x}, set -&gt;
        case ch do
          ?. -&gt; 
            set
          ?@ -&gt;
            MapSet.put(set, {x, y})
        end
      end)
  end

  def parse(lines) do
    Enum.with_index(lines)
      |&gt; Enum.reduce(MapSet.new(), &amp;parse_line/2)
  end

  def neighbors({x, y}) do
    for xx &lt;- (x - 1)..(x + 1), yy &lt;- (y - 1)..(y + 1), x != xx or y != yy do
      {xx, yy}
    end
  end

  def accessible(set) do
    Enum.filter(set, fn pos -&gt;
      ncount = Enum.reduce(neighbors(pos), 0, fn p2, count -&gt;
        if MapSet.member?(set, p2) do
          count + 1
        else
          count
        end
      end)
      ncount &lt; 4
    end)
      |&gt; MapSet.new()
  end
end
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">test_set = """
..@@.@@@@.
@@@.@.@.@@
@@@@@.@.@@
@.@@@@..@.
@@.@@@@.@@
.@@@@@@@.@
.@.@.@.@@@
@.@@@.@@@@
.@@@@@@@@.
@.@.@@@.@.
""" |&gt; String.split("\n", trim: true)
  |&gt; Forklift.parse()
Forklift.accessible(test_set)
  |&gt; Enum.count()
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">input_set = File.stream!(__DIR__ &lt;&gt; "/dec-04-input.txt")
  |&gt; Forklift.parse()
Forklift.accessible(input_set)
  |&gt; MapSet.size()
</code></pre>
<h2><a name="p-379344-part-two-3" class="anchor" href="#p-379344-part-two-3" aria-label="Heading link" rel="nofollow"></a>Part Two</h2>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Forklift2 do
  def total_removable(set, acc \\ 0) do
    accessible = Forklift.accessible(set)
    count = MapSet.size(accessible)
    if count == 0 do
      acc
    else
      set = MapSet.difference(set, accessible)
      total_removable(set, acc + count)
    end
  end
end
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">Forklift2.total_removable(test_set)
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">Forklift2.total_removable(input_set)
</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="379344" 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-2025-day-4/73543/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-379344" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379344"
                     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 #13"></div>
  </section>
</div>
    <div class="postbit" id="379346" data-post-id="379346">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This one was pretty straightforward. Using MapSet (and MapSet operations) and the “for” construct, which is more concise than reduce. No optimization at all</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">
defmodule AdventOfCode.Solution.Year2025.Day04 do
  import Enum, only: [flat_map: 2, with_index: 1, sum: 1, filter: 2, count: 1]

  def parse(input) do
    # Create a MapSet of the {row,col} of the rolls
    with_index(String.split(input, "\n", trim: true))
    |&gt; flat_map(fn {line, row} -&gt;
      for {c, col} &lt;- with_index(to_charlist(line)), c == ?@, do: {row, col}
    end)
    |&gt; MapSet.new()
  end

  def vec_sum({a, b}, {c, d}), do: {a + c, b + d}

  @around for r &lt;- -1..1, c &lt;- -1..1, {r, c} != {0, 0}, do: {r, c}
  def liftable(roll, rolls) do
    sum(for delta &lt;- @around, vec_sum(roll, delta) in rolls, do: 1) &lt; 4
  end

  def part1(input) do
    rolls = parse(input)
    rolls |&gt; filter(&amp;liftable(&amp;1, rolls)) |&gt; count()
  end

  def remove_all(rolls, counter \\ 0) do
    # Identify the removable rolls
    removable = for roll &lt;- rolls, liftable(roll, rolls), into: MapSet.new(), do: roll
    # If nothing to remove, we're done, else remove the removable rolls and increment the counter
    if MapSet.size(removable) == 0,
      do: counter,
      else: remove_all(MapSet.difference(rolls, removable), counter + MapSet.size(removable))
  end

  def part2(input), do: input |&gt; parse() |&gt; remove_all()
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="379346" data-batch-url="/posts/batch_likers">
                        5
                      </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-2025-day-4/73543/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-379346" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379346"
                     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 #14"></div>
  </section>
</div>
    <div class="postbit" id="379354" data-post-id="379354">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This is nearly verbatim what I did until the for comprehension. I used a reduce_while inside a reduce_while instead. Time to learn me some better tricks!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379354" 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-2025-day-4/73543/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-379354" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379354"
                     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 #15"></div>
  </section>
</div>
    <div class="postbit" id="379361" data-post-id="379361">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Wow, the compile-time <span class="mention">@around</span> trick is pretty neat, I’m stealing it! <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" 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="379361" 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-2025-day-4/73543/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-379361" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379361"
                     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 #16"></div>
  </section>
</div>
    <div class="postbit" id="379375" data-post-id="379375">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sevenseacat" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sevenseacat/120/23153_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sevenseacat
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Ash Framework</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dompdv" data-post="15" data-topic="73543">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dompdv/48/36848_2.png" class="avatar"> dompdv:</div>
<blockquote>
<p><code>for r &lt;- -1..1, c &lt;- -1..1, {r, c} != {0, 0}, do: {r, c}</code></p>
</blockquote>
</aside>
<p>this would have saved the many different times I fat-fingered the iterations for generating a list of neighbours lol</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379375" 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-2025-day-4/73543/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-379375" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379375"
                     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 #17"></div>
  </section>
</div>
    <div class="postbit" id="379404" data-post-id="379404">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I first counted the other way around, what rolls are in the way of others, but then I missed the rolls without anything in the way.</p>
<p>Nice to see some Elixir tricks to write it compact.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379404" 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-2025-day-4/73543/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-379404" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379404"
                     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 #18"></div>
  </section>
</div>
    <div class="postbit" id="379406" data-post-id="379406">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<pre data-code-wrap="elixir"><code class="lang-elixir">#!/usr/bin/env elixir

# Advent of Code 2025. Day 4

defmodule M do
  def remove_rolls_once(map) do
    Map.reject(map, fn {{r, c}, _v} -&gt;
      Enum.sum_by([
        map[{r-1,c-1}], map[{r-1,c}], map[{r-1,c+1}],
        map[{r,c-1}], map[{r,c+1}],
        map[{r+1,c-1}], map[{r+1,c}], map[{r+1,c+1}]
        ], fn nil -&gt; 0 ; true -&gt; 1 end) &lt; 4
    end)
  end
  def remove_rolls(map) do
    map2 = remove_rolls_once(map)
    if map_size(map) == map_size(map2), do: map, else: remove_rolls(map2)
  end
end

rows = File.read!("../day04.txt") |&gt; String.split()
map = rows |&gt; Enum.with_index() |&gt; Enum.reduce(%{}, fn {row, r}, map -&gt;
  row |&gt; String.codepoints() |&gt; Enum.with_index() |&gt; Enum.reduce(map, fn {cell, c}, map -&gt;
    if cell == "@", do: Map.put(map, {r, c}, true), else: map
  end)
end)

# Part 1
map2 = M.remove_rolls_once(map)
IO.puts "Day 5. Part 1: #{map_size(map) - map_size(map2)}"

# Part 2
map2 = M.remove_rolls(map)
IO.puts "Day 5. Part 2: #{map_size(map) - map_size(map2)}"
</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="379406" 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-2025-day-4/73543/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-379406" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379406"
                     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 #19"></div>
  </section>
</div>
    <div class="postbit" id="379409" data-post-id="379409">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="lkuty" data-post="20" data-topic="73543">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lkuty/48/34879_2.png" class="avatar"> lkuty:</div>
<blockquote>
<p><code>Map.reject</code></p>
</blockquote>
</aside>
<p>I did not know of its existence. But then again: I always end up on manpages of Elixir 1.12….</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379409" 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-2025-day-4/73543/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-379409" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379409"
                     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 #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/73543/load_more?page=3">Load more posts (1 remaining)</a>
</div></template></turbo-stream>