<div dir="ltr"><div><div>Don't forget #m(...) for literal maps and #"..." for utf-8 encoded binary strings.<br><br>Actually they are all well-defined. The #(...), #b(...) #m(...) define data types based on the CL syntax for vectors #(...). The others are also taken from standard CL.<br><br></div>If you want to add these datatypes and constructs, which I do, then you are going to add new syntax however you do it. Also these are all literal values and not forms. It is the forms being extremely consistent which make writing macros very simple. It also allows you to generate "new" syntax which Elixir does not.<br><br></div>Robert<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On 7 March 2016 at 15:42, Anthony Ramine <span dir="ltr"><<a href="mailto:n.oxyde@gmail.com" target="_blank">n.oxyde@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Homoiconicity is way overrated when it comes to metaprogamming. There is nothing that Lisp does with parentheses that Elixir cannot with the 'do' token.<div><br></div><div>And no Lisp is truly simple or consistent. Not LFE at least.</div><div><br></div><div><span style="white-space:pre-wrap">   </span>lists:map</div><div><span style="white-space:pre-wrap">        </span>#'list_to_integer/1</div><div><span style="white-space:pre-wrap">  </span>#*0</div><div><span style="white-space:pre-wrap">      </span>#o111</div><div><span style="white-space:pre-wrap">    </span>+1.0</div><div><span style="white-space:pre-wrap">     </span>#B(…)</div><div><span style="white-space:pre-wrap">  </span>#(…)</div><div><span style="white-space:pre-wrap">   </span>; comments</div><div><span style="white-space:pre-wrap">       </span>#.(…)</div><div><br></div><div>There is nothing simple nor consistent about this.</div><div><br></div><div>Regards.</div><span class=""><div><br><div><blockquote type="cite"><div>Le 6 mars 2016 à 05:13, Robert Virding <<a href="mailto:rvirding@gmail.com" target="_blank">rvirding@gmail.com</a>> a écrit :</div><br><div><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">I think if you seriously want to push macros then LFE, or any other lisp for that matter, is a much better option. It is much more straight-forward and readable. It also gives you the option of creating new syntax which Elixir macros don't. Elixir has a slightly "lax" syntax which allows you to hide that everything is a function call but you can't create new syntax.<br><br></div><span style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">Of course some people lisp doesn't actually have any syntax but I prefer to view it as being very simple and very consistent. :-)</span></div></blockquote></div><br></div></span></div></blockquote></div><br></div>