<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="237600" data-post-id="237600">
  <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 quote-modified" data-username="sasajuric" data-post="102" data-topic="44773">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sasajuric/48/991_2.png" class="avatar"> sasajuric:</div>
<blockquote>
<p>I don’t share the interpretation that <code>for</code> means map.[…] IMO the word for communicates about the traversal, not about the outcome of such traversal.</p>
</blockquote>
</aside>
<p>I see I am not the only one. Felt a bit lonely.</p>
<p>As for the proposals: every proposal which ‘switches’ the positions of the assignments (for x, i return i,x) will probably cause confusion. We might get used to it, but imho it looks like code smell. And for a convenience function that is extra damaging.</p>
<p>As for not breaking code: do we have a topic of ‘things we would do differently if we could?’ somewhere? Just to set an upper limit, keep track and not become ’Javascript’. This might seem like a joke, but it’s not. There are examples out there which show us what the results are for ‘never break’ and ‘just break it for the better’. And when we take those examples; I favor to break once in a long while. Somewhere between ECMA and Angular <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>
<p>Elixir is young, let it have it’s puberty. Break once and be glad you don’t have to explain the weaker syntax the next 50 years.</p>
<p>Kind regards,<br>
someone who went a long way for backwards compatibility once and learned the hard way it catches up with you.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="237600" data-batch-url="/posts/batch_likers">
                        7
                      </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/introducing-for-let-and-for-reduce/44773/103">Post #102</a>
	                </div>
	            </div>
              <div id="likers-container-237600" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237600"
                     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 #102"></div>
  </section>
</div>
    <div class="postbit" id="237629" data-post-id="237629">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>I see I am not the only one. Felt a bit lonely.</p>
</blockquote>
<p>You are not alone.</p>
<p>When I was developing in Erlang, list comprehensions where <em>the</em> tool I was using, and I was using it <em>all the time</em>.</p>
<p>In Elixir… Somehow the <code>for x &lt;- ...</code> sytax never clicked with me as a <code>map</code>, and I always use <code>Enum.map</code> instead. Most likely due to the fact that <code>for</code>, to me, also indicates traversal.</p>
<p>And after the new proposal lands I will probably still keep on using <code>Enum.map</code> and <code>Enum.reduce</code> <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" 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="237629" 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/introducing-for-let-and-for-reduce/44773/104">Post #103</a>
	                </div>
	            </div>
              <div id="likers-container-237629" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237629"
                     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 #103"></div>
  </section>
</div>
    <div class="postbit" id="237790" data-post-id="237790">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi <a class="mention" href="/u/josevalim" rel="nofollow">@josevalim</a>, thank you for this wonderful language. I’m worried about adding new features to the language. Adding a new feature can cause bloating. We must learn from the experience of other languages. Languages ​​like JavaScript or Java or C ++, which deviated from their basic principles by adding a large number of features. This causes the programmer to lose his “productivity”. Because you have to constantly hesitate between different options that do the same thing. It also reduces the “simplicity” of the code and its readability. I think we should try to keep the language as small as possible. We really have to have good reasons for adding a new feature. Finally, if a new feature is to be added, it must first be released on an experimental branch other than the main branch. Then, allowing developers to try it out and report on their experience. Finally, after a few months or years, if all goes well, the feature can be added to the language. Adding a new feature to the language is easy, but removing a bad feature from the language will be very difficult. Because when a feature is officially released in the language, many projects and libraries use it and it will no longer be easy to remove 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="237790" 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/introducing-for-let-and-for-reduce/44773/105">Post #104</a>
	                </div>
	            </div>
              <div id="likers-container-237790" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237790"
                     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 #104"></div>
  </section>
</div>
    <div class="postbit" id="237794" data-post-id="237794">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I like this proposal and I think it is a good change.</p>
<p>There has been a lot of discussion about the exact name and syntax of the new features. I will not add to this as a lot has already been said, and I do not have a strong opinion one way or another.</p>
<p>Instead, what I am curious about, is how these new <code>for</code> constructs will desugar. How will this change w.r.t. <code>for</code>s are desugared today? Will <code>for let</code> and <code>for reduce</code> (or whatever their final names may be) still be faster than a pipeline of <code>Enum</code> functions as current-day normal <code>for</code> is, or not?<br>
I feel it is important that the new <code>for</code>-related constructs will behave as similarly as possible to the original w.r.t. time- and memory usage, so that people don’t get surprised. Will this be possible?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="237794" 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/introducing-for-let-and-for-reduce/44773/106">Post #105</a>
	                </div>
	            </div>
              <div id="likers-container-237794" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237794"
                     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 #105"></div>
  </section>
</div>
    <div class="postbit" id="237800" data-post-id="237800">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="hossein" data-post="105" data-topic="44773" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hossein/48/25316_2.png" class="avatar"> hossein:</div>
<blockquote>
<p>Hi <a class="mention" href="/u/josevalim" rel="nofollow">@josevalim</a>, thank you for this wonderful language. I’m worried about adding new features to the language. Adding a new feature can cause bloating. We must learn from the experience of other languages. Languages ​​like JavaScript or Java or C ++, which deviated from their basic principles by adding a large number of features. This causes the programmer to lose his “productivity”. Because you have to constantly hesitate between different options that do the same thing. It also reduces the “simplicity” of the code and its readability. I think we should try to keep the language as small as possible. We really have to have good reasons for adding a new feature.</p>
</blockquote>
</aside>
<p>Welcome to the forums! Your concerns are valid. Have you looked at <a href="https://github.com/josevalim/nested-data-structure-traversal" rel="noopener nofollow ugc">the problem that this feature is attempting to address</a>? What is yout opinion on that?</p>
<aside class="quote no-group" data-username="hossein" data-post="105" data-topic="44773" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hossein/48/25316_2.png" class="avatar"> hossein:</div>
<blockquote>
<p>Finally, if a new feature is to be added, it must first be released on an experimental branch other than the main branch. Then, allowing developers to try it out and report on their experience. Finally, after a few months or years, if all goes well, the feature can be added to the language. Adding a new feature to the language is easy, but removing a bad feature from the language will be very difficult. Because when a feature is officially released in the language, many projects and libraries use it and it will no longer be easy to remove it.</p>
</blockquote>
</aside>
<p>Have you looked through the proposal? It is suggesting an introduction of a construct that does not require new language features due to Elixir’s macro system which allows “extending” the language. If you’ve been around Elixir for a while, you probably noticed some deprecations in the standard library. Elixir actually has <a href="https://hexdocs.pm/elixir/main/compatibility-and-deprecations.html#deprecations" rel="noopener nofollow ugc">a very clear policy around this</a> - this allows the Core Team to move forward with changes and back off from them if needed (or provide a better replacement that emerges with time). I think this also removes the need for the slow release cycles that you’re suggesting.</p>
<p>As you can see, everything is happening in the open, so you can always join the conversation on the elixir-lang mailing list, this forum or on GitHub if you want to provide input to the discussion. I would say that the community enjoys Elixir’s pretty quick release cycle - that’s certainly true for me.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="237800" 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/introducing-for-let-and-for-reduce/44773/107">Post #106</a>
	                </div>
	            </div>
              <div id="likers-container-237800" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237800"
                     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 #106"></div>
  </section>
</div>
    <div class="postbit" id="237813" data-post-id="237813">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ll throw my hat in the ring as well. I find <a class="mention" href="/u/fidr" rel="nofollow">@fidr</a>’s proposal to be the clearest.</p>
<p>While reading through this thread, my brain got a bit muddled by all the <code>let</code> vs. <code>init</code> vs. <code>bind</code> back and forth. After a certain point I forgot what underlying concept those names were supposed to represent.</p>
<p>But after seeing <a class="mention" href="/u/sasajuric" rel="nofollow">@sasajuric</a> say</p>
<blockquote>
<p>I like that <code>for</code> is getting <code>map_reduce</code> capabilities</p>
</blockquote>
<p>I was like “oh right, duh, that’s all this is.” I suddenly had a (hopefully) great mental model of what the new <code>for</code> options were supposed to be doing because I could anchor them to what <code>Enum.{map, map_reduce, reduce}</code> were doing.</p>
<p>IMO, assuming you’re set on <code>for reduce</code>, it’s a huge waste of the parallels between <code>for</code> and <code>Enum</code> to use anything other than <code>for map_reduce</code>.</p>
<blockquote>
<p>This will also leave some room for possible future expansion for any other enumerable functions.</p>
</blockquote>
<p>Agreed. Particularly exciting (for me, anyway) is the option for a comprehension with a break via:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">for reduce_while acc = 0, x &lt;- [1,2,3], y &lt;- [4,5,6] do
  if (acc = acc + x + y) &gt; 20,
    do: {:halt, acc},
    else: {:cont, acc}
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="237813" data-batch-url="/posts/batch_likers">
                        9
                      </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/introducing-for-let-and-for-reduce/44773/108">Post #107</a>
	                </div>
	            </div>
              <div id="likers-container-237813" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237813"
                     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 #107"></div>
  </section>
</div>
    <div class="postbit" id="237822" data-post-id="237822">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think Elixir is still young, and it has to experience it, of course, with good documentation and proper information. I hope to see this feature as soon as possible.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="237822" 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/introducing-for-let-and-for-reduce/44773/109">Post #108</a>
	                </div>
	            </div>
              <div id="likers-container-237822" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237822"
                     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 #108"></div>
  </section>
</div>
    <div class="postbit" id="239710" data-post-id="239710">
  <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>Add to the ‘if we could’ list I was talking about: <a href="https://github.com/elixir-lang/elixir/commit/e98777991b75c6c12ca179721837033fa58ce359#r63805540" class="inline-onebox" rel="noopener nofollow ugc">Bring back filter/reject on Map and Keyword · elixir-lang/elixir@e987779 · GitHub</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="239710" 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/introducing-for-let-and-for-reduce/44773/110">Post #109</a>
	                </div>
	            </div>
              <div id="likers-container-239710" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="239710"
                     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 #109"></div>
  </section>
</div>
    <div class="postbit" id="239751" data-post-id="239751">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>My gut feeling about the topic,</p>
<p>I hope we don’t transform the language into an imperative language to be friendly to the majority that hasn’t joined at the cost of the simplicity of the language. It is confusing already with <code>for</code> sometimes.</p>
<p>I disagree with the promise of being complex as it is today or with the usage of examples inlining everything push-back to prove some points.</p>
<p>We avoid using <code>for</code> and try to stick to <code>Enum</code> for <strong>most</strong> problems. Newcomers don’t have to get cut up in syntaxes. It is already hard enough for them to deal with macros expansions and DSLs.</p>
<p>The familiarity issue is rooted in formal education around imperative languages. I think we don’t need to continue in that route as others, and we should instead give importance to better data structures and functions transformations.</p>
<p>I would like to see more data in terms of who is interested in the feature and collect information about the topic from them. Maybe some survey, to understand precisely what their issues are because still not clear the issue from my perspective (I did read almost every single message, so yes, I read it <img src="https://forum.elixirforum.com/images/emoji/apple/smile.png?v=15" title=":smile:" class="emoji" alt=":smile:" loading="lazy" width="20" height="20"> ).</p>
<p>We should definitely care about making the Elixir Lang <strong>ecosystem</strong> more friendly and inclusive, but changing the language is not the only way. Investing in education could be a solution as well that pays off in the long term for everyone.</p>
<p>Cheers,</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="239751" 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/introducing-for-let-and-for-reduce/44773/111">Post #110</a>
	                </div>
	            </div>
              <div id="likers-container-239751" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="239751"
                     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 #110"></div>
  </section>
</div>
    <div class="postbit" id="239765" data-post-id="239765">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                    <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 class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>To clarify, this proposal does not introduce any imperative concepts to the language. Perhaps one can argue that <code>let</code> is seen as imperative, but it is also worth noting it has been used by functional language way before JS and by math centuries before. <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>
<aside class="quote no-group" data-username="yordisprieto" data-post="111" data-topic="44773">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/yordisprieto/48/20915_2.png" class="avatar"> yordisprieto:</div>
<blockquote>
<p>We avoid using <code>for</code> and try to stick to <code>Enum</code> for <strong>most</strong> problems.</p>
</blockquote>
</aside>
<p>Can you please clarify who do you mean by <em>we</em> and expand why you avoid <code>for</code>, even after the examples in this thread showing it can be quite more expressive than Enum?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="239765" 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/introducing-for-let-and-for-reduce/44773/112">Post #111</a>
	                </div>
	            </div>
              <div id="likers-container-239765" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="239765"
                     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 #111"></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/44773/load_more?page=12">Load more posts (13 remaining)</a>
</div></template></turbo-stream>