Ajouter un commentaire

missyN
aide

bonjour j'ai un problemme avec l'interprete lisp de MccArthy
precisement la fonction eval.
qui est la suivante:
(defun eval.(e a)
(cond
((atom e) (assoc. e a))
((atom (car e))
(cond
((eq (car e) 'quote) (cadr e))
((eq (car e)'atom) (atom (eval. (cadr e) a)))
((eq (car e) 'eq ) (eq (eval. (cadr e) a)
(eval. (caddr e) a)))
((eq (car e) 'car) (car (eval. (cadr e) a)))
((eq (car e) 'cdr) (cdr (eval. (cadr e) a)))
((eq (car e) 'cons.) (cons (eval. (cadr e) a)
(eval. (caddr e) a)))
((eq (car e)'cond) (evcon. (cdr e) a))
(t (eval. (cons (assoc. (car e) a)
(cdr e))
a))))
((eq (caar e) 'lambda)
(eval. (caddar e)
(append. (pair. (cadar e) (evlis. (cdr e) a))
a))))))
mon probleme est que je doit y rajouter defun pour que l'execution de eval. definisse immediatement une nouvelle fonction

et donc j'ai essayer sa:
((eq (caar e) 'defun) (defun bar (l) (eval. (cadr (cdar e))
(append. (pair.
(cadar e)(evlis. (cdr e) a))
a))))))
et je lance eval. comme suite:

(eval. '((defun (x) (cons. x ())) n) '((n (if l (cons (car l) l) l)) (t t) ( () ())))
le hic est que ma fonction definie donc "bar" ne marche pas comme je veux

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 III  RRRR   RRRR   TTTTTT  W     W 
I R R R R TT W W
I RRRR RRRR TT W W W
I R R R R TT W W W
III R RR R RR TT W W