<div dir="ltr"><div class="gmail_default" style="font-family:garamond,serif"><table cellpadding="0" class="gmail-ajC" style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12.8px"><tbody><tr class="gmail-ajv"><td colspan="2" class="gmail-gL" style="padding:6px 0px"><span class="gmail-gI"><div style="color:rgb(34,34,34);font-size:12.8px">It&#39;s time for another <span class="gmail-m_-5142413690077532690gmail-il">LambdaLounge</span> talk!  This time we have a talk on Macros in Clojure.</div><div style="color:rgb(34,34,34);font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="color:rgb(34,34,34);font-size:12.8px"><span style="font-size:12.8px">Whether you&#39;ve ever looked at metaprogramming or DSLs (in Ruby or Perl), template programming (in C++ or Haskell), introspection (in Java), or (heavens!) wondered what on earth the (point (of (all (those (parentheses))))) in Lisp is, then this talk is for you!</span></div><div style="color:rgb(34,34,34);font-size:12.8px"><br></div><div style="color:rgb(34,34,34);font-size:12.8px"> <b>When</b>: Monday 16th October @ 7pm (doors open a little earlier, aim to start talks 7:10)</div><div style="color:rgb(34,34,34);font-size:12.8px"><br></div><div style="color:rgb(34,34,34);font-size:12.8px"> <b>Who</b>:   <span style="font-size:12.8px">Dan Meyers (BBC Programme Metadata, </span><a href="https://twitter.com/Carr0t" style="font-size:inherit;font-family:inherit;font-style:inherit;font-variant:inherit;color:rgb(182,96,33);margin:0px;padding:0px;border-width:0px 0px 1px;border-top-style:initial;border-right-style:initial;border-bottom-style:solid;border-left-style:initial;border-top-color:initial;border-right-color:initial;border-bottom-color:rgb(182,96,33);border-left-color:initial;font-weight:bold;font-stretch:inherit;line-height:inherit;vertical-align:baseline;text-decoration-line:none;outline:0px">@Carr0t</a><span style="font-size:12.8px">)</span></div><div style="color:rgb(34,34,34);font-size:small"><span style="font-size:12.8px">        </span></div><div style="color:rgb(34,34,34);font-size:small"><span style="font-size:12.8px"><b> What: </b>Clojure Macros - With great power comes much confusion</span></div><div style="color:rgb(34,34,34);font-size:small"><br></div><div style="color:rgb(34,34,34);font-size:small"><span style="font-size:12.8px"> </span><b style="font-size:12.8px">Where</b><span style="font-size:12.8px">:  </span><a href="https://madlab.org.uk/find-us/" target="_blank" style="font-size:12.8px">https://madlab.org.uk/find-us<wbr>/</a></div><div style="color:rgb(34,34,34);font-size:small"><br></div><div style="color:rgb(34,34,34);font-size:small"> <b>Details: </b><span style="font-family:helvetica;font-size:18px"> Dan will go through the basic building blocks of macros and how they differ from functions. He writes:</span></div><blockquote style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-stretch:inherit;font-size:18px;line-height:inherit;font-family:helvetica;vertical-align:baseline;quotes:none;color:rgb(34,34,34)"><p style="margin:0px 0px 27px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline">“Anyone who’s written any Clojure has probably <em style="margin:0px;padding:0px;border:0px;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline">used</em> macros that are in the language core, even if they didn’t realise it, but a lot of people might not have <em style="margin:0px;padding:0px;border:0px;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline">written</em> their own macros.</p><p style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline">We’ll go through two examples covering what I see as the major use-cases of macros – logging and code readability. We’ll do this bit by bit to see how they do what they do, and then look at the results of that.<br><br></p></blockquote><p style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-stretch:inherit;font-size:18px;line-height:inherit;font-family:helvetica;vertical-align:baseline;color:rgb(34,34,34)">The talk starts from fairly basic principles and building on that so you don’t need to know Clojure or anything to understand it. A few brief slides at the beginning give you all the info you need to understand what’s going on even if you’ve not really looked at a Lisp-like language before.&quot;</p><div style="color:rgb(34,34,34);font-size:small"><b><br></b></div><div><b><font color="#222222" size="2"><a href="http://www.lambdalounge.org.uk/2017/10/16/macros.html#meetings">http://www.lambdalounge.org.uk/2017/10/16/macros.html#meetings</a></font><br></b></div></span></td></tr></tbody></table></div><div class="gmail_extra"><div class="gmail_quote"><br></div><div class="gmail_quote"><span style="font-size:12.8px"><div class="gmail_default" style="font-family:garamond,serif;display:inline">​See you soon!</div></span><br></div><div class="gmail_quote"><span style="font-size:12.8px"><div class="gmail_default" style="font-family:garamond,serif;display:inline"><br></div></span></div><div class="gmail_quote"><span style="font-size:12.8px"><div class="gmail_default" style="font-family:garamond,serif;display:inline">Hakim</div></span></div></div></div>