1
J'ai donc écrit ce code. Comment puis-je obtenir le x dans l'instruction if pour évaluer? pour le moment, x réussit toujours, et l'instruction if n'échoue jamais.J'ai une variable qui contient une expression. Par exemple: (> 1 2), comment l'évaluer?
(define expand
(lambda (exp)
(cond
((symbol? exp) exp)
((pair? exp)
(case (car exp)
((and)
(if (null? (cdr exp)) '(quote #t)
(if (null? (cddr exp)) (cadr exp)
(let ((x (cadr exp))
(thunk (lambda() (expand '(and ,(cddr exp))))))
(if x (thunk)
`(quote ,x))))))
(else exp)))
(else exp))))
Merci, je l'avais essayé. mais il me donne alors cette erreur: La procédure # [compilé-procédure 1 ("global" # x5) # x3 # x412F2C] a été appelée avec 1 argument 'il exige exactement 2 arguments. – Chris