www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit b8c8abcdfbfe91caf15c93c9524cb9fc8e60a124
parent 0fb441b12716c6defa2b751af3310fcb02241753
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Sat, 30 Oct 2010 21:51:19 +0200

corrections mineures.

Diffstat:
MTODO-Liste | 6++++--
Mlisp2li.lisp | 11++++++-----
2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/TODO-Liste b/TODO-Liste @@ -18,4 +18,6 @@ Questions : - Peut-on faire funcall sur des macros ? Si oui, on peut réécrire mapcar de manière beaucoup plus efficace dans inplementation-fonctions.lisp. Si non, vu qu'on a defmacro les fonctions car & cdr & d'autres, on ne peut pas les - funcall :( -\ No newline at end of file + funcall :( + Réponse : non, on ne peut pas faire de funcall, mapcar etc. sur des macros (erreur "undefined function". Normal : ce + ne sont pas des fonctions :) ). +\ No newline at end of file diff --git a/lisp2li.lisp b/lisp2li.lisp @@ -1,6 +1,6 @@ ;; TODO : reste a gerer les defuns, les let, les lambda expression, les setf, les progn, ... (defun lisp2li (expr env) - "Convertis le code LISP en un code intermédiaire reconnu + "Convertit le code LISP en un code intermédiaire reconnu par le compilateur et par l’interpréteur" (cond ((and (atom expr) (constantp expr)) ; literaux (cons :lit expr)) @@ -9,11 +9,12 @@ par le compilateur et par l’interpréteur" (if cell (cons :var (car cell)) (warn "Variable ~S unknown" (car expr))))) - ((and (consp (car expr)) ; λ-expressions - ; => recursion sur arguments - ; => construction environnement - ; => recursion sur corps de la λ-fonction + ((and (consp (car expr)) (eq 'lambda (caar expr))) + ;; λ-expressions + ;; => recursion sur arguments + ;; => construction environnement + ;; => recursion sur corps de la λ-fonction (error "Lambda expression NYI")) ((not (symbolp (car expr))) (warn "~S isn't a symbol" (car expr)))