On peut débattre de l'appartenance ou non du langage Scheme à la famille Lisp. Il est clair que la syntaxe superficielle (voir annexe A) est empruntée à Lisp.
Par contre, si l'on regarde la syntaxe du deuxième niveau, c'est moins clair. En Common Lisp, cette syntaxe est définie par une structure interne sous forme de listes imbriquées. Le programmeur Common Lisp ne pense pas à une séquence de tokens mais à cette structure arborescente. Cette fonctionnalité est cruciale pour permettre des macros.
Scheme, par contre, n'a en principe pas de syntaxe de deuxième niveau. La syntaxe des diverses constructions en Scheme est expliquée sous forme de suite de tokens. Par exemple, les deux expressions suivantes sont entièrement équivalentes en Common Lisp mais pas en Scheme :