From e724ebc4a66f951eaa0f299881c6535c421ff64f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Sun, 9 Jan 2011 20:19:14 +0100 Subject: [PATCH] Correction de quelques bugs dans le markdown. --- lisp/notes/soutenance.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lisp/notes/soutenance.markdown b/lisp/notes/soutenance.markdown index 67ed24a..fb3911e 100644 --- a/lisp/notes/soutenance.markdown +++ b/lisp/notes/soutenance.markdown @@ -34,7 +34,7 @@ Cette transformation est assurée par la fonction squash-lisp décrite ci-dessou * simplification globale de la syntaxe : * (let (a (b 2) c) (list a b c)) - -> (let ((a nil) (b 2) (c nil)) (list a b c)) + → (let ((a nil) (b 2) (c nil)) (list a b c)) * unification de la syntaxe des let, let*, flet, labels. * tous les appels de fonction sont transformés en funcall. * ré-écriture des `tagbody`/`go`, `throw`/`catch`, `block`/`return`/`return-from` en termes de `unwind`/`unwind-protect`, @@ -45,15 +45,15 @@ Cette transformation est assurée par la fonction squash-lisp décrite ci-dessou * Passe 2 : * noms uniques pour les variables locales. Il n'y a donc plus besoin de connaître l'imbrication des environnements pour savoir à quelle définition fait référence l'utilisation d'une variable. - * toutes les déclarations de variables locales (`let`,`let*`,`flet`,`labels`,`lambda`) sont transformées en `simple-let` + * toutes les déclarations de variables locales (`let`, `let*`, `flet`, `labels`, `lambda`) sont transformées en `simple-let` * le `simple-let` ne fait que déclarer, il n'afecte pas de valeurs : (let ((a nil) (b 2)) (list a b)) - -> (simple-let (a b) (setq a nil) (setq b 2) (list a b)) + → (simple-let (a b) (setq a nil) (setq b 2) (list a b)) * simplification de la lambda-list (élimination de `&optional`, `&rest`, `&key`, `&allow-other-keys`, `&aux`) * suppression des paramètres de la `lambda` : - ```lisp - (lambda (x y) (+ x y)) - -> (simple-lambda (simple-let (x y) (setq x (get-param 0)) (setq y (get-param 1)) (+ x y))) + ```lisp + (lambda (x y) (+ x y)) + → (simple-lambda (simple-let (x y) (setq x (get-param 0)) (setq y (get-param 1)) (+ x y))) ``` * Passe 3 * On lorsqu'une variable à l'intérieur d'une `lambda` référence une déclaration à l'extérieur de la `lambda`, on la marque comme étant *capturée*.