<story><title>Google Common Lisp style guide</title><url>https://google.github.io/styleguide/lispguide.xml</url></story><parent_chain><item><author>kazinator</author><text>&amp;gt; &lt;i&gt;You must not use INTERN or UNINTERN at runtime.&lt;/i&gt;&lt;p&gt;I.e. you must not read Lisp data at run time, if it contains symbols, because that will call &lt;i&gt;intern&lt;/i&gt;.&lt;p&gt;&amp;gt; &lt;i&gt;You should avoid using a list as anything besides a container of elements of like type.&lt;/i&gt;&lt;p&gt;Good-bye, code-is-data.&lt;p&gt;I could reduce this guide by a good 30% with &amp;quot;You should avoid using Lisp as anything as Go or Java&amp;quot;.&lt;p&gt;But that could be seen as defining a macro, which you must seldom do.</text></item></parent_chain><comment><author>rvense</author><text>What it says is to not abuse lists, isn&amp;#x27;t it? I think what they mean is something like, don&amp;#x27;t use a list as a &amp;quot;object&amp;quot;&amp;#x2F;tuple that gets picked apart with a lot of cdddaring? Rather, use real structures and other containers as appropriate, keeping in mind the performance characteristics. It specifically says lists are appropriate for macros and functions used by macros at compile-time.</text></comment>
<story><title>Google Common Lisp style guide</title><url>https://google.github.io/styleguide/lispguide.xml</url></story><parent_chain><item><author>kazinator</author><text>&amp;gt; &lt;i&gt;You must not use INTERN or UNINTERN at runtime.&lt;/i&gt;&lt;p&gt;I.e. you must not read Lisp data at run time, if it contains symbols, because that will call &lt;i&gt;intern&lt;/i&gt;.&lt;p&gt;&amp;gt; &lt;i&gt;You should avoid using a list as anything besides a container of elements of like type.&lt;/i&gt;&lt;p&gt;Good-bye, code-is-data.&lt;p&gt;I could reduce this guide by a good 30% with &amp;quot;You should avoid using Lisp as anything as Go or Java&amp;quot;.&lt;p&gt;But that could be seen as defining a macro, which you must seldom do.</text></item></parent_chain><comment><author>Spivak</author><text>I really don&amp;#x27;t think that this is bad advice in general. Mess with the code all you want at compile time, but don&amp;#x27;t touch it at runtime is the good kind of boring. CL is an extremely powerful language, it doesn&amp;#x27;t mean you should be using it all the time in your day-to-day work.</text></comment>