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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That’s me up to the end of Chapter 1. It’s as great an intro as I remember from my first read through. I agree with <a class="mention" href="/u/ranting_rabbit" rel="nofollow">@ranting_rabbit</a> that it has left me hungry for more details on scheduling and distribution <img src="https://forum.elixirforum.com/images/emoji/apple/grin.png?v=15" title=":grin:" class="emoji" alt=":grin:" loading="lazy" width="20" height="20"></p>
<p>The thing that stuck with me on this read through were the lines</p>
<blockquote>
<p>Furthermore, I/O operations are internally delegated to separate threads, or a kernel-poll service of the underlying OS is used, if available. This means that any process that waits for an I/O operation to finish won’t block the execution of other processes.</p>
</blockquote>
<p>Looking forward to getting stuck into Chapter 2!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="326926" 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/elixir-in-action-book-club/63088/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-326926" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="326926"
                     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 #31"></div>
  </section>
</div>
    <div class="postbit" id="327060" data-post-id="327060">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just finished reading Chapter 2 this morning. I think the chapter offers a great overview on the basic building blocks of the language and a gentle introduction to how to write and run Elixir (and Erlang!) code.</p>
<p>I’m glad the book takes the time to point out how Elixir &amp; Erlang don’t actually have booleans at all, and <code>true</code> and <code>false</code> (and <code>nil</code>) are just atoms in disguise.I still remember the first time I learned this, and how it made something click in my head about the intersection between Elixir and Erlang.</p>
<p>(As an aside, this point about booleans made me wonder what (probably none!) implications this has on the implementation details of set-theoretic types that are in the works for Elixir. I recall the papers speaking about booleans, but I presume the word is used in the exact same way we speak of booleans in Elixir today).</p>
<p>I’m a fan of the book taking the time to explain lists and visualizing the recursive nature of them. Back when I was first learning Elixir, I recall that it took me a good while to get a grasp on the way lists worked, and I’m sure the effort put into the book here will save some future learner a bunch of time <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>I appreciated the introductions to bitstrings and IO lists and felt like it was a nice refresher on the topic. Despite being familiar with them on a theoretical level, I have very rarely directly used either of them even after my ~8 years spent with Elixir!</p>
<p>When I saw the title of Macros, I was slightly surprised they were being introduced at this stage as well. However, I feel Saša took the absolute right approach here by simply pointing out their general idea and value proposition without trying to teach how to use them.It’s wonderful to know macros exist and what they can do, but as Saša points out, learning them thoroughly takes a whole book <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>All in all, I’m happy to say that the chapter gave me food for thought despite having worked with the language for a while already. How about <em>you</em> – what caught your attention in Chapter 2?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327060" data-batch-url="/posts/batch_likers">
                        4
                      </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/elixir-in-action-book-club/63088/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-327060" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327060"
                     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 #32"></div>
  </section>
</div>
    <div class="postbit" id="327120" data-post-id="327120">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have finished chapter 2 also.  It reminded me how much I had forgotten.  <img src="https://forum.elixirforum.com/images/emoji/apple/joy.png?v=15" title=":joy:" class="emoji" alt=":joy:" loading="lazy" width="20" height="20"></p>
<p>I like how it often linked to the docs for certain parts in case you wanted a bit deeper dive into something specific.</p>
<p>Here are a few things that stood out.</p>
<p>In 2.4.2 is this example:<br>
:“an atom with spaces”</p>
<p>I don’t recall seeing this usage actually being used.  Is there a practical reason why this is useful in some scenarios?</p>
<p>In 2.4.8, sigils for binary strings mentions this difference:<br>
~s"Interpolated #{3 + 0.14}"<br>
~S"Not interpolated #{3 + 0.14}"</p>
<p>The charlist sigil does not mention this difference, though it also works.<br>
~c"Interpolated #{3 + 0.14}"<br>
~C"Not interpolated #{3 + 0.14}"</p>
<p>Mentioned for completeness. <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>
<p>I’m not sure when this would be needed for lists of individual characters as the interpolation changes which characters are available.  Perhaps it could be useful when combined with binary strings as in the examples of 2.4.12 IO lists.  By comparison, trying to use the date and time sigils (~D, ~T, and ~U) as lowercase throws an error.</p>
<p>When looking at the comparison operators of table 2.1, I had to look at the second row for a bit.  The descriptions for &gt;= and &lt;= are swapped to have a reversed order in the description than for the operators.  It’s not a big deal, but had me make sure I wasn’t missing something.</p>
<p>Overall, this chapter has me eager to begin using it in subsequent chapters.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327120" 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/elixir-in-action-book-club/63088/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-327120" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327120"
                     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 #33"></div>
  </section>
</div>
    <div class="postbit" id="327122" data-post-id="327122">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="TimButterfield" data-post="34" data-topic="63088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/timbutterfield/48/2089_2.png" class="avatar"> TimButterfield:</div>
<blockquote>
<p>:“an atom with spaces”</p>
</blockquote>
</aside>
<p>I have not yet read chapter 2, but it’s more to the point that <code>:""</code> lets you use any character in an atom.  This is actually used all the time behind the scenes when working with aliases.  When I say “alias” I mean atoms that start with a capital letter.<br>
Any time you do <code>defmodule Foo, do: ()</code> you’re actually creating the atom: <code>:"Elixir.Foo"</code>, so the very character Elixir uses as a delimiter isn’t valid in the “regular” atom syntax!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327122" 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/elixir-in-action-book-club/63088/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-327122" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327122"
                     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 #34"></div>
  </section>
</div>
    <div class="postbit" id="327134" data-post-id="327134">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Wanted to jump in to reinforce for anyone reading this book for the first time, this really is one of the best programming language books I have ever read. Saša’s communication (written and verbal) is clear and concise. Seriously, you can’t go better than this book.</p>
<p>That being said, I’ve read through most of the third edition and the second edition before. I am trying to catch up with the book club right now. Love seeing Bjorn here as well. I think having both Saša and Bjorn both in this thread is a testament to the community and is perhaps one of its strongest and most understated assets. You guys (gals, and nonbinary pals - everyone on the forum) rock.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327134" 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/elixir-in-action-book-club/63088/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-327134" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327134"
                     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 #35"></div>
  </section>
</div>
    <div class="postbit" id="327150" data-post-id="327150">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m a bit late to the party, I suppose! Just finished chapter 1. I started learning Elixir earnestly a couple weeks ago coming from Erlang.<br>
So far I’m enjoying the book quite a bit! The introductory portion on Erlang was <em>much</em> easier to follow than the resources I used to learn Erlang originally. I wish I’d had this as my primer back then. I didn’t really get any new information out of chapter one, but it is strikingly well-presented so far. I will include a little bit my new-to-Elixir thoughts as well though–something I would have gotten out of the chapter if I hadn’t read another intro book first.</p>
<p>Elixir’s pipe operator is very good. I spent a Saturday in college looking at several languages which implement the three basic functors and was quite dismayed to learn that Javascript’s dot-methods were more readable than most functional languages’ composition features. Javascript’s functors only count because of how… javascript it’s type system is, and that OOP-style syntax doesn’t quite track with what’s going on under the hood in a functional language. It’s hard to build things that are intuitively understandable and semantically accurate to the machine behaviors! Maybe I’m just easily excitable, but something like the pipe operator that achieves that is just lovely. Seems hard to go back!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327150" 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/elixir-in-action-book-club/63088/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-327150" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327150"
                     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 #36"></div>
  </section>
</div>
    <div class="postbit" id="327162" data-post-id="327162">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I read the wrong edition for Chapter 2 <img src="https://forum.elixirforum.com/images/emoji/apple/man_facepalming.png?v=15" title=":man_facepalming:" class="emoji" alt=":man_facepalming:" loading="lazy" width="20" height="20"> I didn’t realize I hadn’t downloaded the third edition on my tablet. Well my review for chapter 2 will be a rather diff based one since I just read second edition!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327162" 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/elixir-in-action-book-club/63088/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-327162" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327162"
                     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 #37"></div>
  </section>
</div>
    <div class="postbit" id="327166" data-post-id="327166">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have now read chapter 2. Overall it is an excellent chapter providing a good introduction to the building blocks of Elixir. I like that it is generally made clear what Elixir types are inherited from Erlang and which are not.</p>
<p>I found a few minor inaccuracies, and I have a few suggestions for improvements.</p>
<p>In 2.4.1 Numbers:</p>
<blockquote>
<p>There is no upper limit on an integer’s size</p>
</blockquote>
<p>There is an upper limit, but it is not documented anywhere as far as I know. Perhaps better to say that there is no upper limit for practical purposes. The current limit is more than one million decimal digits. It used to be higher. (For some background information about the current limit, see <a href="https://www.erlang.org/blog/optimizations/#integer-arithmetic-improvements" rel="nofollow">Integer arithmetic improvements</a> and the linked pull requests.)</p>
<p>Later in the same section, it is said:</p>
<blockquote>
<p>… a float occupies either 32 or 64 bits, depending on the build architecture of the virtual machine.</p>
</blockquote>
<p>The float value itself is always 64 bits (a <code>double</code> in C) regardless of the build architecture. But then there is some overhead that is more significant than for an integer.</p>
<p>On a 64-bit system, a small integer having up to 60 bits is stored in a single word. The four least significant bits are reserved for a <em>tag</em> to distinguish small integers from other Erlang terms.</p>
<p>A float needs three words (on a 64-bit system). One word is a tagged pointer to two words on the heap. The first of those two word is a header word (to distinguish floats from other heap objects such as tuples or maps), and the second word is the float value itself.</p>
<p>(As an optimization, in a sequence of floating point operations, BEAM can store floats in special float registers. For example, see this <a href="https://github.com/dgud/wings/blob/fe24fac17ce09af34ea202582d4160f52cfb935c/e3d/e3d_mat.erl#L300-L324" rel="noopener nofollow ugc">matrix multiplication function</a>. The <code>is_float/1</code> guard tests are there to ensure that the float registers are used; without them the performance would be much worse.)</p>
<p>In <em>NIL AND TRUTHY VALUES</em> (in 2.4.2 Atoms), the <code>nil</code> atom is mentioned. Since all other data types described in this section are also Erlang data types, I think that it should be mentioned that the atom <code>nil</code> has no special meaning in Erlang, and that the <code>&amp;&amp;</code>, <code>||</code>, and <code>!</code> operators don’t exist in Erlang.</p>
<p>Also, in 2.4.11 Higher-level types, it is mentioned that “The aforementioned built-in types are inherited from the Erlang world”. I suggest that you point out that <code>nil</code> is the exception.</p>
<p>In 2.4.4 Lists, it is said that " In Erlang, <em>lists</em> are used to manage dynamic, variable-sized collections of data". That is correct, but perhaps you meant to say “In Elixir, …” or possibly “In Erlang and Elixir, …”</p>
<p>In 2.4.6 Maps, it is mentioned that <code>squares[2]</code> can be used to retrieve a value from a map. As I understand it, this is a less performant way to retrieve a value from a map than using the <code>Map</code> module. Because of that and because of the many ways maps can be accessed, already making maps confusing, perhaps it would be better to mention this way at the end of the Maps section?</p>
<p>In 2.4.7 Binaries and bitstrings, there is the following example:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex(5)&gt; &lt;&lt;257::16&gt;&gt;
&lt;&lt;1, 1&gt;&gt;
</code></pre>
<p>I think that it would be better to use an integer that will show whether it will be stored in big or little endian order. For example:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex(5)&gt; &lt;&lt;260::16&gt;&gt;
&lt;&lt;1, 4&gt;&gt;
</code></pre>
<p>Even if big endian or little endian is not mentioned in the text, I think it would be nice to use an example from which anyone interested could deduce that the default order is big endian.</p>
<p>In 2.4.12 IO lists, it is stated that “Lists usually aren’t effective in this case because appending to a list is an O(n) operation”. I think that the word “effective” should be replaced with “efficient”. “Effective” means producing a result that is wanted or intended, while “efficient” means capable of producing a desired result without wasting materials, time, or energy.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327166" data-batch-url="/posts/batch_likers">
                        12
                      </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/elixir-in-action-book-club/63088/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-327166" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327166"
                     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 #38"></div>
  </section>
</div>
    <div class="postbit" id="327267" data-post-id="327267">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><strong>Chapter 2:</strong></p>
<p>Whew.  This chapter for me felt extremely long.  I was jotting down a multitude of notes, which extended the time, but it was a lot of info.  Great info, just a lot of it.</p>
<p>I noticed many similarities/familiarities with my current knowledge from Ruby, which makes some of this very easy to pick up and understand.  There are also a lot of newer concepts for me.  Some random notes:</p>
<ul>
<li>
<p><code>Function arguments with default values generate multiple functions of the same name with different arities.</code>  This is pretty cool and something I had not thought of.</p>
</li>
<li>
<p>I had seen function variables called with something like <code>square.(5)</code> in passing, but being new to Elixir hadn’t looked into why the <code>.</code> was used in the code.  Makes perfect sense now and it’s nice to have that clarification up front in the early stages of learning.</p>
</li>
<li>
<p>Also nice to see the capture operator <code>&amp;</code> to make code more concise.  I frequently use something similar in Ruby with Procs like <code>[1,2,3].map(&amp;:to_s)</code>.  Pretty easy to translate that into<br>
<code>Enum.map([1, 2, 3], &amp;Integer.to_string/1)</code> (I think that’s the most concise?)</p>
</li>
<li>
<p>All the main data types make sense so far, it will just take some practice and time to get used to all the new syntax and functions available.</p>
</li>
</ul>
<p>I’m glad I took a bit longer to take notes throughout this chapter even though I wanted to breeze through it.  I’m excited to be done with the basics here and move on to Chapter 3 - Pattern matching is still something really new to me and it hasn’t fully clicked yet when I’ve glanced at this previously.  It will be nice to solidify my thinking/knowledge around it.</p>
<p>Hope everyone is enjoying the book!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327267" 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/elixir-in-action-book-club/63088/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-327267" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327267"
                     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 #39"></div>
  </section>
</div>
    <div class="postbit" id="327310" data-post-id="327310">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="chuggingCoffee" data-post="40" data-topic="63088">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/chuggingcoffee/48/34518_2.png" class="avatar"> chuggingCoffee:</div>
<blockquote>
<p>I had seen function variables called with something like <code>square.(5)</code> in passing, but being new to Elixir hadn’t looked into why the <code>.</code> was used in the code.</p>
</blockquote>
</aside>
<p>This reminds me of an article by Joe Armstrong that I read long time ago. He mentioned about how Elixir gets closures right and a few other syntax observations he did (on trying out Elixir for the first time).</p>
<p><a href="https://joearms.github.io/published/2013-05-31-a-week-with-elixir.html" rel="noopener nofollow ugc">This is the link</a>. Since we are reading chapter 2 I think this could be a nice supplement since he talked about syntax and his opinions of it (some historic artifact too like the ← operator)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="327310" data-batch-url="/posts/batch_likers">
                        4
                      </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/elixir-in-action-book-club/63088/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-327310" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="327310"
                     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 #40"></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/63088/load_more?page=5">Load more posts (56 remaining)</a>
</div></template></turbo-stream>