Définitions locales

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 () ...)))



Irene DURAND
2011-10-14