Certaines constructions similaires en Scheme et en Common Lisp ont une sémantique différente. C'est le cas en particulier des définitions locales. La construction suivante en Scheme :
(defun (f)
(defun (g)
...)
...)
est équivalente à l'utilisation de letrec pour définir
g, alors qu'en Common Lisp ce n'est pas le cas. La construction
suivante de Common Lisp :
(let ((x 0))
(defun f ()
...))
n'est donc pas possible en Scheme. En Scheme, la construction pour obtenir le même effet serait :
(define f)
(let ((x 0))
(set! f (lambda () ...)))