Would you prefer that somebody sells you Lisp telling you, that there is only one syntax rule? Later then you easily detect that a) people think Lisp is unreadable&#x2F;unusable because of this and b) that it&#x27;s actually completely wrong and that Lisp cannot even be parsed with a conventional parser, because it has even a dynamic syntax which can be changed by the user and that this is even a defining feature of typical Lisp?<p>Lisp like most other programming languages is not defined by one syntax role.<p>One of the main features of Lisp is actually that it supports user-defined syntax - either on top of s-expressions (aka MACROS) and&#x2F;or by changing&#x2F;extending the syntax of s-expressions (aka READER MACROS).<p>Wouldn&#x27;t you want to know that? Just let the user of this editor feature know that it mainly works on the list level and does not know of the full syntax of Lisp and that this is sufficient for a wide range of editing tasks.<p>The emacswiki for Paredit says:<p><a href="http:&#x2F;&#x2F;www.emacswiki.org&#x2F;emacs&#x2F;ParEdit" rel="nofollow">http:&#x2F;&#x2F;www.emacswiki.org&#x2F;emacs&#x2F;ParEdit</a><p>&gt; ParEdit (paredit.el) is a minor mode for performing structured editing of S-expression data. The typical example of this would be Lisp or Scheme source code.<p>&gt; ParEdit helps <i></i>keep parentheses balanced<i></i> and adds many keys for moving S-expressions and moving around in S-expressions. Its behavior can be jarring for those who may want transient periods of unbalanced parentheses, such as when typing parentheses directly or commenting out code line by line.<p>It says what it does. It makes no claims about Lisp syntax.<p>Let&#x27;s try to not oversell Lisp syntax - Lisp syntax has been controversial for decades and legions of students and programmers struggled with it. There is a reason for that.<p>Tell a student that Lisp has only one syntax rule, the list, and then he&#x2F;she struggles a lot forming valid Lisp programs?<p>Typical questions:<p><pre><code>    (if (&gt; sin (a) pi) &#x27;foo &#x27;bar)
</code></pre>
Why is above not working? Somebody told the students that Lisp only has lists and it still does not work?<p><pre><code>    (cond (&gt; (sin a) pi) &#x27;foo
          (t &#x27;bar))
</code></pre>
Above does not work either. Wasn&#x27;t Lisp syntax supposed to be totally trivial with just one rule?<p>Let&#x27;s be honest, it&#x27;s not the students fault. The syntax of Lisp is actually more difficult than just writing lists.<p>I don&#x27;t think this is &#x27;pedantry&#x27;. Teach Lisp to people or deal with programmer&#x27;s typical problems and you&#x27;ll see lots of these questions.