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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Oliver" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Oliver/120/1167_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Oliver
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think you’re missing the point, <a class="mention" href="/u/gregvaughn" rel="nofollow">@gregvaughn</a>, that I’m trying to make as I was using an arbitrary example instead of constructing a real list that cannot be rewritten by a mere list comprehension.</p>
<p>The point is to construct lists with several different optional elements, each with its own condition (which occurs in my code base). Right now we either reject nil elements afterwards or flatten the overall list. It’s easy if everyone agrees how to handle optional elements.</p>
<p>My real example is data used describing steps in a protocol tester, which would look more like this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[ &lt; ... data representing step 1 ...&gt;,
  &lt; ... data representing step 2 ...&gt;,
  &lt; ... data represening optional step 3 ...&gt;,
  &lt; ... data representing step 4 ...&gt;,
  &lt; ... data represening optional step 5 ...&gt; |
  &lt; ... data representing further test steps ...&gt; ]
  |&gt; Enum.reject(&amp;is_nil/1)
</code></pre>
<p>Each of these data structures is generated by calling a function to make the respective step.</p>
<p>If there was a way to construct such lists without having to filter or flatten them, it would be a boon in several places, but none of them really offer themselves for a list comprehension unless I missed your point.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317719" 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/allowing-an-ignored-member-in-list-construction/61643/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-317719" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317719"
                     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="317720" data-post-id="317720">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Oliver" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Oliver/120/1167_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Oliver
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello, <a class="mention" href="/u/dimitarvp" rel="nofollow">@dimitarvp</a>. Yes, that’s what I’m currently resorting to in some places.</p>
<p>Fair enough if it’s too niche!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317720" 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/allowing-an-ignored-member-in-list-construction/61643/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-317720" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317720"
                     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="317722" data-post-id="317722">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Oliver" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Oliver/120/1167_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Oliver
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I already have a solution that works with one more line of code, I just thought I encounter the problem so often in making data structures, other people must have it too. Seems like not.</p>
<p>My software really builds a lot around big, declarative lists with structs and further nesting for the protocol data and also for the FW data. I encounter this particular thing a lot describing my test data.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317722" 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/allowing-an-ignored-member-in-list-construction/61643/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-317722" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317722"
                     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="317724" data-post-id="317724">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Oliver" data-post="12" data-topic="61643">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/oliver/48/1167_2.png" class="avatar"> Oliver:</div>
<blockquote>
<p>If there was a way to construct such lists without having to filter or flatten them, it would be a boon in several places, but none of them really offer themselves for a list comprehension unless I missed your point.</p>
</blockquote>
</aside>
<p>I suppose I did miss the point. I haven’t experienced the pain/annoyance you’re having. This sounds like a specialized technique and/or something you’re familiar with from prior languages/frameworks.</p>
<p>One more thought crossed my mind. Could this be an XY problem? Do you really need a list, or would an enumerable suffice? If an enumerable is good, then I might create a stream that encapsulates this skipping logic.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317724" 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/allowing-an-ignored-member-in-list-construction/61643/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-317724" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317724"
                     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="317725" data-post-id="317725">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Oliver" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Oliver/120/1167_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Oliver
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Maybe I’m using the wrong term here.</p>
<p>Let’s say one element in the middle of the list was optional. Still it would be possible to walk the construction of the list only once at runtime, I thought, irrespective of order? Like only paying it once.</p>
<p>Let’s say I’m building a list declaratively from functions each returning one arbitrarily complex item:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[ foo1(), foo2(), foo3() ]
</code></pre>
<p>What is the cost for constructing this list? O(1)? O(n)? Is it paid at compile or runtime?</p>
<p>And if I do this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[ elem1, optional_elem2, elem3 ] |&gt; Enum.reject(&amp;is_nil/1)
</code></pre>
<p>Is the cost then O(n) * 2? (Do I walk the whole list twice?)</p>
<p>I guess that’s what it all depends on - because my assumptions of what the costs of these constructs are are wrong, then I might understand the value of various solutions better.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317725" 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/allowing-an-ignored-member-in-list-construction/61643/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-317725" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317725"
                     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="317726" data-post-id="317726">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Oliver" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Oliver/120/1167_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Oliver
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/gregvaughn" rel="nofollow">@gregvaughn</a> - sorry for the misleading example then. <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"></p>
<p>It doesn’t have to be a list, you’re right about that. I’m merely interested in two things:</p>
<ol>
<li>Preserving the order.</li>
<li>Being able to write it in a declarative way, item after item.</li>
</ol>
<p>If you have a good alternate proposal, I would be delighted. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" 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="317726" 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/allowing-an-ignored-member-in-list-construction/61643/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-317726" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317726"
                     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="317735" data-post-id="317735">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>At a minimum, I think this would need some alternative syntax because this is <em>already</em> valid Elixir:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[
  :foo,
  if x.something? do :bar end,
  :baz
]
</code></pre>
<p>This is distinctly different from Dart, where the regular <code>if</code> is a <em>statement</em> with no value so putting it inside an expression would otherwise be meaningless.</p>
<p>That syntax would also cause headaches for referential transparency, since this should be “the same” code as the above:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">extra_var = if x.something? do :bar end

[
  :foo,
  extra_var,
  :baz
]
</code></pre>
<hr>
<p>IMO the better approach is to use a domain-appropriate “empty” element and clean it up if needed. Cleanup may not even be strictly necessary - for instance, if you’re producing a big <code>iolist</code> value with optional parts then <code>[]</code> is a perfectly fine “skip this and go to the next element” marker.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317735" 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/allowing-an-ignored-member-in-list-construction/61643/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-317735" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317735"
                     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="317736" data-post-id="317736">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="benwilson512" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/120/1457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  benwilson512
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Craft GraphQL APIs in Elixir with Absinthe</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Oliver" data-post="16" data-topic="61643">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/oliver/48/1167_2.png" class="avatar"> Oliver:</div>
<blockquote>
<p>Is the cost then O(n) * 2? (Do I walk the whole list twice?)</p>
</blockquote>
</aside>
<p>Yes, but this happens rather a lot and is very well optimized. Eg an <code>Enum.map</code> is a 2x walk because you have to build up the result backwards and then reverse it (or use a body recursive stack, but that’s still functionally a 2x walk since you have to pop the stack).</p>
<p>If you have literally just one optional item btw you can:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">if optional_thing do
  [a, optional_thing, b]
else
  [a, b]
end
</code></pre>
<p>If you are trying to construct a list that has many different items that may optional interspersed amongst items that are not, I don’t see how the compiler is supposed to do constant optimization. Definitionally you aren’t constructing a constant, you’re constructing a value who’s length varies by a bunch of different values.</p>
<p>Overall I think this discussion of costs is probably misplaced. Are we talking about lists that are literally a handful of items long? If so we’re in hyper optimization land and the code that performs best will rely heavily on exactly what you’re trying to do.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317736" 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/allowing-an-ignored-member-in-list-construction/61643/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-317736" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317736"
                     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="317742" data-post-id="317742">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sabiwara" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sabiwara/120/18612_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sabiwara
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Elixir Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="benwilson512" data-post="19" data-topic="61643">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/48/1457_2.png" class="avatar"> benwilson512:</div>
<blockquote>
<p>Yes, but this happens rather a lot and is very well optimized. Eg an <code>Enum.map</code> is a 2x walk because you have to build up the result backwards and then reverse it</p>
</blockquote>
</aside>
<aside class="quote no-group" data-username="benwilson512" data-post="19" data-topic="61643">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/48/1457_2.png" class="avatar"> benwilson512:</div>
<blockquote>
<p>If so we’re in hyper optimization land and the code that performs best will rely heavily on exactly what you’re trying to do.</p>
</blockquote>
</aside>
<p>I strongly second this, it probably shouldn’t matter in practice or if there was a real performance concern we would need to benchmark to find an optimal solution.</p>
<p>Just code golfing at this point for the sake of the argument (and fun), I came up with the following which should do it in one pass (well two <em>technically</em> since the list gets built backwards and reversed):</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule POC do
  @steps [&amp;POC.foo/1, &amp;POC.bar/1]
  
  def foo(_ctx), do: nil
  def bar(ctx), do: ctx.bar
  
  def only_truthy_results(ctx) do
    for step &lt;- @steps, res = step.(ctx), do: res
  end
end
</code></pre>
<p>The trick being that since <code>@steps</code> is a literal here, the input list does not need to be built on the fly, it just has to be moved in memory. And the comprehension will directly build the filtered list. You can pass arguments in the form of a context map if you need to.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="317742" 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/allowing-an-ignored-member-in-list-construction/61643/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-317742" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317742"
                     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="317797" data-post-id="317797">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Oliver" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Oliver/120/1167_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Oliver
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello, <a class="mention" href="/u/benwilson512" rel="nofollow">@benwilson512</a>.</p>
<blockquote>
<p>Are we talking about lists that are literally a handful of items long?</p>
</blockquote>
<p>No, these lists could be thousands of items long if we’re creating a test that runs hours. But then lists might also be the wrong answer since describing the whole test as a huge literal might not be practical and some sort of deferred evaluation might anyway be needed.</p>
<p>Anyway, thank you for all your thoughts and input. <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" 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="317797" 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/allowing-an-ignored-member-in-list-construction/61643/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-317797" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="317797"
                     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/61643/load_more?page=3">Load more posts (2 remaining)</a>
</div></template></turbo-stream>